Compartilhar via


Exibições de banco de dados na API do GraphQL

As exibições têm suporte como alternativas para tabelas no DAB (Construtor de API de Dados). Uma exibição pode ser exposta por meio de endpoints GraphQL com configuração mínima.

Configuração

Para expor uma visualização:

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

Exemplo da CLI

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

Exemplo de configuração

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

Comportamento do GraphQL

  • A exibição aparece como um tipo GraphQL
  • Sempre há suporte para consultas
  • O suporte a mutações ocorre apenas se a visualização for atualizável
  • Segue a estrutura padrão do esquema GraphQL do DAB

Exemplo de consulta

{
  bookDetails {
    items {
      id
      title
      authorName
    }
  }
}

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
  • Visualizações não suportam relacionamentos
  • Há suporte para paginação, filtragem e classificação se a exibição se comportar como uma tabela