Ir para o conteúdo

Estruturas Complexas de API REST

Visão Geral

Novidades no VInyl 2.6, App Builder a API REST da agora oferece suporte a estruturas de API REST complexas para GET operações. Com esse aprimoramento, agora é possível solicitar dados de várias tabelas e aninhar os resultados em uma única estrutura JSON retornada.

Nota

Outros métodos HTTP, como POST e PUT não são suportados atualmente.

Configuração

  • Navegue até App Builder IDE > Amplie sua empresa > Publicar
  • Crie seu endpoint REST como de costume com sua tabela raiz/ endpoint
  • Clique no ícone Estrutura do seu endpoint
  • Adicione recursos filho conforme necessário

Parâmetros de Recursos

Nome Descrição
Pai A tabela pai na hierarquia.
Nome O nome deste nó na estrutura da árvore. Observe que o nome pode incluir barras para aninhar a estrutura ainda mais profundamente.
Tabela A tabela da qual recuperar dados.
Tipo de campo O tipo de campo.
  • Array de objetos: Este é o tipo padrão em que cada linha na tabela é um objeto JSON.
  • Array de escalares: Um array de itens de valor único, serializados para um array JSON de escalares. A tabela deve conter Index e Value colunas.
  • Objeto: Mapeia para um único objeto JSON (eliminando efetivamente o array JSON). A tabela deve retornar apenas uma linha no máximo.
Expandir por padrão Se verdadeiro, a tabela é expandida por padrão (mostrado no JSON de saída). Se falso, o chamador REST precisará fornecer um $expand=true propriedade de string de consultar para ver os dados
Observe que esta propriedade afeta apenas uma solicitação de coleta (por exemplo /orders). Uma solicitação de um item específico em uma coleção (por exemplo, /orders/101) sempre expandirá as tabelas filhas.
Obter limite máximo Se fornecido, indica o limite máximo de itens que podem ser devolvidos em um GET solicitação. Se NULL, o valor máximo padrão para a API REST é usado.
Ligações de recursos Configura as ligações entre as tabelas pai e filho.

Alterações nos Parâmetros de Consultar

Os seguintes parâmetros de consultar foram modificados para funcionar com estruturas complexas de API REST:

  • $fieldspermite que você especifique tabelas filhas
    • Por exemplo details/*: Todos os campos do details tabela filho
    • Por exemplo details/name:Só o name campo do details tabela filho
    • Por exemplo *: Todos os campos em todas as tabelas
  • $expandum parâmetro true/false adicionado para permitir que o chamador REST expanda tabelas que não são expandidas por padrão (ou vice-versa). Usado apenas para solicitações de coleta.
    • Por exemplo. $expand=true