Fonte de dados REST API

Introdução

Usado para conectar dados provenientes de uma REST API.

Instalação

Este plugin é comercial. Para obter detalhes sobre como ativá-lo, consulte: Guia de ativação de plugins comerciais

Adicionar uma fonte REST API

Depois de ativar o plugin, selecione REST API no menu suspenso Add new do gerenciamento de fontes de dados.

20240721171420

Configurar uma fonte REST API

20240721171507

Adicionar uma Collection

Os recursos RESTful correspondem às Collections do NocoBase, como o recurso Users.

GET /users
POST /users
GET /users/1
PUT /users/1
DELETE /users/1

A configuração correspondente na API do NocoBase é

GET /users:list
POST /users:create
POST /users:get?filterByTk=1
POST /users:update?filterByTk=1
POST /users:destroy?filterByTk=1

Para consultar a especificação completa de design da API do NocoBase, consulte a documentação da API.

20240716213344

Consulte a seção “NocoBase API - Core”

20240716213258

A configuração da Collection da fonte de dados REST API é a seguinte

List

Configure o mapeamento da interface para consultar a lista de recursos

20251201162457

Get

Configure o mapeamento da interface para consultar os detalhes de um recurso

20251201162744

Create

Configure o mapeamento da interface para criar um recurso

20251201163000

Update

Configure o mapeamento da interface para atualizar um recurso 20251201163058

Destroy

Configure o mapeamento da interface para excluir um recurso

20251201163204

As interfaces List e Get são obrigatórias.

Depurar a API

Integração dos parâmetros da solicitação

Exemplo: configure parâmetros de paginação para a interface List (se a API de terceiros não oferecer suporte à paginação, os dados da lista obtidos serão paginados).

20251201163500

Observe que somente as variáveis já adicionadas à interface entrarão em vigor.

Nome do parâmetro de integração da API de terceirosParâmetro do NocoBase
page{{request.params.page}}
limit{{request.params.pageSize}}

Clique em Try it out para depurar e visualizar o resultado da resposta.

20251201163635

Conversão do formato da resposta

O formato da resposta da API de terceiros pode não estar em conformidade com o padrão do NocoBase. É necessário convertê-lo para que seja exibido corretamente no frontend.

20251201164529

Ajuste as regras de conversão de acordo com o formato da resposta da API de terceiros, para que estejam em conformidade com o padrão de saída do NocoBase.

20251201164629

Descrição do processo de depuração

20240717110051

Conversão das informações de erro

Quando ocorre um erro na API de terceiros, o formato das informações de erro na resposta pode não estar em conformidade com o padrão do NocoBase. É necessário convertê-lo para que seja exibido corretamente no frontend.

20251201170545

Quando a conversão das informações de erro não está configurada, por padrão elas são convertidas em informações de erro que incluem o código de status HTTP.

20251201170732

Depois de configurar a conversão das informações de erro, elas passam a estar em conformidade com o padrão de saída do NocoBase, permitindo que o frontend exiba corretamente as informações de erro da API de terceiros.

20251201170946 20251201171113

Variáveis

A fonte de dados REST API fornece três tipos de variáveis para a integração com as interfaces

  • Variáveis personalizadas da fonte de dados
  • Solicitação do NocoBase
  • Resposta de terceiros

Variáveis personalizadas da fonte de dados

20240716221937

20240716221858

Solicitação do NocoBase

  • Params: parâmetros de consulta da URL (Search Params); os Params variam de acordo com a interface;
  • Headers: corpo da solicitação, usado principalmente para fornecer algumas informações personalizadas do NocoBase com o prefixo X-;
  • Body: corpo da solicitação;
  • Token: token de API da solicitação atual do NocoBase.

20251201164833

Resposta de terceiros

Atualmente, somente o Body da resposta é fornecido

20251201164915

As variáveis disponíveis para a integração com cada interface são as seguintes:

List

ParâmetroDescrição
request.params.pageNúmero da página atual
request.params.pageSizeQuantidade de itens por página
request.params.filterCondição de filtragem (deve estar no formato Filter do NocoBase)
request.params.sortRegra de ordenação (deve estar no formato Sort do NocoBase)
request.params.appendsCampos carregados conforme necessário, geralmente usados para o carregamento sob demanda de campos relacionais
request.params.fieldsQuais campos a interface deve retornar (lista de permissões)
request.params.exceptQuais campos devem ser excluídos (lista de bloqueio)

Get

ParâmetroDescrição
request.params.filterByTkObrigatório, geralmente o ID dos dados atuais
request.params.filterCondição de filtragem (deve estar no formato Filter do NocoBase)
request.params.appendsCampos carregados conforme necessário, geralmente usados para o carregamento sob demanda de campos relacionais
request.params.fieldsQuais campos a interface deve retornar (lista de permissões)
request.params.exceptQuais campos devem ser excluídos (lista de bloqueio)

Create

ParâmetroDescrição
request.params.whiteListLista de permissões
request.params.blacklistLista de bloqueio
request.bodyDados iniciais para criação

Update

ParâmetroDescrição
request.params.filterByTkObrigatório, geralmente o ID dos dados atuais
request.params.filterCondição de filtragem (deve estar no formato Filter do NocoBase)
request.params.whiteListLista de permissões
request.params.blacklistLista de bloqueio
request.bodyDados a serem atualizados

Destroy

ParâmetroDescrição
request.params.filterByTkObrigatório, geralmente o ID dos dados atuais
request.params.filterCondição de filtragem (deve estar no formato Filter do NocoBase)

Configurar campos

Extraia os metadados dos campos (Fields) dos dados das interfaces CRUD do recurso adaptado e use-os como campos da collection.

20240716223636

Extrair metadados dos campos.

20251201165133

Campos e visualização.

20240716224403

Editar campos (de forma semelhante a outras fontes de dados).

20240716224704

Adicionar um bloco da fonte de dados REST API

Depois de configurar a Collection, você poderá adicionar blocos à interface.

20240716225120