Partilhar via


Como aceder a endpoints REST

O construtor de API de dados (DAB) fornece uma API Web RESTful que permite acessar tabelas, exibições e procedimentos armazenados a partir de um banco de dados conectado. Cada objeto de banco de dados exposto é definido como uma entidade na configuração de tempo de execução.

Por padrão, o DAB hospeda endpoints REST em:

https://{base_url}/api/{entity}

Observação

Todos os componentes de caminho e parâmetros de consulta diferenciam maiúsculas de minúsculas.

Palavras-chave suportadas no construtor de API de dados

Concept REST Propósito
Projection $select Escolha quais campos retornar
Filtering $filter Restringir linhas por condição
Classificação $orderby Definir a ordem de classificação
Tamanho da página $first Limitar os itens por página
Continuação $after Continuar a partir da última página

Estrutura básica

Para chamar uma API REST, construa uma solicitação usando este padrão:

{HTTP method} https://{base_url}/{rest-path}/{entity}

Exemplo de leitura de todos os registros da book entidade:

GET https://localhost:5001/api/book

A resposta é um objeto JSON:

{
  "value": [
    { "id": 1, "title": "Dune" },
    { "id": 2, "title": "Foundation" }
  ]
}

Observação

Por padrão, o DAB retorna até 100 itens por consulta, a menos que configurado de outra forma (runtime.pagination.default-page-size).

Tipos de consulta

Cada entidade REST suporta leituras de coleções e de registos únicos.

Funcionamento Descrição
GET /api/{entity} Devolve uma lista de registos
GET /api/{entity}/{primary-key-column}/{primary-key-value} Retorna um registo por chave primária

Exemplo de retorno de um registro:

GET /api/book/id/1010

Exemplo de retorno de múltiplos resultados

GET /api/book

Filtrando resultados

Use o $filter parâmetro query para restringir quais registros são retornados.

GET /api/book?$filter=title eq 'Foundation'

Esta consulta retorna todos os livros cujo título é igual a "Fundação".

Os filtros podem incluir operadores lógicos para consultas mais complexas:

GET /api/book?$filter=year ge 1970 or title eq 'Dune'

Consulte a referência de argumento $filter para operadores suportados como eq, ne, lt, le, ande or.

Ordenar resultados

O $orderby parâmetro define como os registros são classificados.

GET /api/book?$orderby=year desc, title asc

Isso retorna livros ordenados por year descendentes, depois por title.

Consulte a referência de argumento $orderby para obter mais detalhes.

Limitando os resultados {#first-and-after}

O $first parâmetro limita quantos registros são retornados em uma solicitação.

GET /api/book?$first=5

Isso retorna os cinco primeiros livros, ordenados por chave primária por padrão. Você também pode usar $first=-1 para solicitar o tamanho máximo de página configurado.

Saiba mais no $first referência de argumento.

Resultados contínuos

Para obter a próxima página, use $after com o token de continuação da resposta anterior.

GET /api/book?$first=5&$after={continuation-token}

O $after token identifica onde a última consulta terminou. Consulte a referência de argumento $after para mais detalhes.

Seleção de campo (projeção)

Use $select para controlar quais campos são incluídos na resposta.

GET /api/book?$select=id,title,price

Isso retorna apenas as colunas especificadas. Se um campo estiver ausente ou não estiver acessível, o DAB retornará 400 Bad Request.

Consulte $select referência de argumento para obter detalhes.

Modificando dados

A API REST também suporta operações de criação, atualização e exclusão, dependendo das permissões da entidade.

Método Ação
POST Criar um novo item
PUT Substituir um item existente (ou criar, se faltar)
PATCH Atualizar um item existente (ou criar, se faltar)
DELETE Remover um item por chave primária

Exemplo de criação de um novo registo:

POST /api/book
Content-type: application/json

{
  "id": 2000,
  "title": "Leviathan Wakes"
}

Exemplo de atualização de um registro existente:

PATCH /api/book/id/2000
Content-type: application/json

{
  "year": 2011,
  "pages": 577
}

Exemplo de exclusão de um registro:

DELETE /api/book/id/2000