Compartilhar via


Usando exibições no construtor de API de Dados

As visualizações são suportadas como alternativas a tabelas no DAB. Uma vista pode ser exposta por meio de endpoints REST ou GraphQL com configuração mínima.

Configuração

Para expor um modo de exibição:

  • Definir source.type como "view"
  • Definir source.object como o nome de exibição totalmente qualificado
  • Defina key-fields para identificar de forma exclusiva uma linha
  • Conceder permissão usando a ação "read" (e, opcionalmente, "create", "update", "delete", se o modo de exibição for atualizável)

Exemplo da CLI

dab add BookDetail \
  --source dbo.vw_books_details \
  --source.type "view" \
  --source.key-fields "id" \
  --permissions "anonymous:read"

Exemplo de configuração

"BookDetail": {
  "source": {
    "type": "view",
    "object": "dbo.vw_books_details",
    "key-fields": [ "id" ]
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "read" ]
    }
  ]
}

Suporte a REST

  • Dá suporte a todos os verbos REST: GET, , POST, PUT, , PATCHDELETE
  • O comportamento padrão é idêntico às entidades com suporte de tabela
  • As operações só serão bem-sucedidas se o modo de exibição for atualizável e as permissões apropriadas forem definidas

Solicitação de exemplo

GET /api/BookDetail/42

Retorna a linha de vw_books_details com id = 42.

Suporte ao GraphQL

  • A exibição é exibida como um tipo GraphQL
  • Sempre há suporte para consultas
  • As mutações só são suportadas se a visualização for atualizável
  • Segue a estrutura de esquema padrão DAB do GraphQL

Permissões

  • Usar a ação read para exibições somente leitura
  • Use create, updatee delete somente se o modo de exibição for atualizável

Limitações

  • key-fields são necessários
  • Visões não dão suporte a relações
  • Há suporte para paginação, filtragem e classificação se a exibição se comportar como uma tabela