Ir para o conteúdo

Estruturas complexas de REST API no Jitterbit App Builder

Visão geral

Por padrão, uma solicitação GET contra um recurso de REST API do App Builder retorna dados de uma única tabela. A REST API do App Builder também suporta estruturas complexas: aninhando dados de tabelas relacionadas em uma única resposta JSON, em vez de exigir que o chamador faça uma solicitação separada para cada tabela relacionada.

Por exemplo, um recurso customer poderia aninhar seus orders relacionados, e cada pedido poderia, por sua vez, aninhar seus items, de modo que uma única solicitação GET contra customer retorna um cliente junto com seus pedidos e os itens de linha de cada pedido, tudo em uma única resposta.

Nota

Estruturas complexas são suportadas apenas para operações GET. Outros métodos HTTP, como POST e PUT, não são suportados.

Esta página aborda:

Adicionar um nó filho

Após publicar um recurso para seu recurso raiz, aninha-se dados adicionais sob ele adicionando nós filhos. Cada nó adicionado se torna um nível na estrutura JSON resultante e pode ter nós filhos adicionais, permitindo aninhar dados tão profundamente quanto o modelo de dados exigir.

  1. Acesse IDE > REST APIs.

  2. A aba REST APIs lista todos os endpoints atuais no painel Services. Localize o bloco do recurso que procura e clique no ícone para abrir a página REST API desse recurso.

  3. Localize o endpoint ao qual deseja adicionar nós filhos no painel Resources. Clique no ícone para ver o diálogo Resource.

  4. Na aba Nodes, clique em + Node. O diálogo Node é aberto:

    Diálogo Node

  5. Defina os parâmetros do novo nó, incluindo sob qual nó pai ele se aninha e de qual tabela recupera dados.

  6. Clique em Save. O painel Fields fica disponível para este nó.

  7. No painel Fields, clique em + Field para adicionar e configurar os campos do nó.

  8. Repita as etapas 4 a 7 conforme necessário para aninhar nós filhos adicionais, inclusive sob o nó que acabou de criar, para aninhar uma estrutura com mais de um nível de profundidade.

Parâmetros do nó

Todo nó, seja o nó raiz implícito de um recurso ou um nó filho adicionado, tem as seguintes propriedades, que controlam como esse nível da estrutura é recuperado e representado na resposta:

Nome Descrição
Parent O nó pai na hierarquia.
Name O nome deste nó na estrutura de árvore. O nome pode incluir barras para aninhar a estrutura ainda mais profundamente, sem precisar criar um nó intermediário para cada nível.
Table A tabela da qual recuperar dados.
Node Type O tipo de nó.
  • Array de objetos: Este é o tipo padrão, onde cada linha da tabela é um objeto JSON.
  • Array de escalares: Uma matriz de itens de valor único, serializada em uma matriz JSON de escalares. A tabela deve conter colunas Index e Value.
  • Objeto: Mapeia para um único objeto JSON, eliminando completamente a matriz JSON. A tabela deve retornar no máximo uma linha.
Expand By Default Determina se os dados do nó são incluídos automaticamente na resposta. Os chamadores podem substituir isso usando o parâmetro de consulta $expand.
  • Não expandir: (Padrão.) Os dados do nó não são incluídos a menos que o chamador os solicite.
  • Expandir para itens: Os dados do nó são incluídos apenas quando o pai é solicitado como um único item (por exemplo, /orders/101).
  • Expandir para itens e coleções: Os dados do nó são incluídos tanto quando o pai é solicitado como um único item quanto como uma coleção (por exemplo, /orders).
GET Max Limit O limite máximo de itens que podem ser retornados em uma solicitação GET, independentemente do que o chamador solicita. Se NULL, o valor máximo padrão para a REST API é usado.
Bindings Configura as vinculações entre os nós pai e filho, para que o App Builder saiba qual coluna pai corresponde a qual coluna filho ao aninhar os dados. Após salvar o nó, um ícone de link aparece ao lado de Parent; clique nele para abrir o diálogo Bindings e mapeie cada coluna pai para sua coluna filho correspondente.

Campos do nó

Cada campo que você adiciona ao painel Fields de um nó controla uma parte dos dados na saída JSON desse nó:

Nome Descrição
Index A posição do campo no nó.
Name A chave do objeto usada para este campo no documento JSON. Os nomes dos campos devem ser exclusivos dentro de um determinado nó e devem ser seguros para uso como chaves JSON: evite espaços e pontuação.
Column A coluna da tabela ou objeto de negócio que respalda o campo.
Include By Default Se o campo está incluído no documento por padrão. Os chamadores podem substituir isso usando o parâmetro de consulta $fields.

Consultar uma estrutura aninhada

Depois que um recurso tem uma estrutura aninhada, dois parâmetros de consulta de convenção REST URI existentes se comportam de forma diferente quando um chamador o consulta:

  • $fields aceita um caminho para uma tabela filha, permitindo que os chamadores selecionem campos de dados aninhados em vez de apenas a tabela raiz:

    Valor Seleciona
    details/* Todos os campos da tabela filha details.
    details/name Apenas o campo name da tabela filha details.
    * Todos os campos em todas as tabelas.
  • $expand é um parâmetro verdadeiro/falso que permite a um chamador substituir a configuração Expand By Default de um nó, tanto para solicitações de item quanto de coleção. $expand=true expande o nó independentemente de seu padrão; $expand=false suprime a expansão independentemente de seu padrão.