Compartilhar via


Referência de esquema de configuração do construtor de API de dados

O construtor de API de Dados requer pelo menos um arquivo de configuração para ser executado. Esse arquivo baseado em JSON define sua configuração de API, desde configurações de ambiente até definições de entidade. Ele começa com uma $schema propriedade, que habilita a validação de esquema para o restante do arquivo.

Top-level properties

Property Description
$schema URI do esquema JSON para essa configuração.
data-source Objeto que contém configurações de conectividade de banco de dados.
data-source-files Matriz de outros caminhos de arquivo de configuração.
runtime Objeto configurando comportamentos de runtime.
entities Objeto que define todas as entidades expostas por meio de REST ou GraphQL.

Data-source properties

Property Description
data-source Objeto que contém configurações de conectividade de banco de dados.
data-source.database-type Tipo de banco de dados usado no back-end (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Cadeia de conexão para o tipo de banco de dados selecionado.
data-source.options Opções específicas do banco de dados e configurações avançadas.
data-source.health Configuração de verificação de integridade para a fonte de dados.
data-source-files Matriz de outros caminhos de arquivo de configuração.

Runtime properties

Property Description
runtime Objeto configurando comportamentos de runtime.
runtime.pagination Configurações de paginação para respostas de API.
runtime.rest Configuração global da API REST.
runtime.graphql Configuração global da API do GraphQL.
runtime.cache Configuração de cache de resposta global.
runtime.telemetry Configuração de telemetria, registro em log e monitoramento.
runtime.health Configuração de verificação de integridade global.

Entities properties

Property Description
entities Objeto que define todas as entidades expostas por meio de REST ou GraphQL.
entities.entity-name.source Detalhes da fonte do banco de dados para a entidade.
entities.entity-name.rest Configuração da API REST para a entidade.
entities.entity-name.graphql Configuração da API do GraphQL para a entidade.
entities.entity-name.permissions Permissões e controle de acesso para a entidade.
entities.entity-name.relationships Relações com outras entidades.
entities.entity-name.cache Configuração de cache no nível da entidade.
entities.entity-name.health Configuração de verificação de integridade no nível da entidade.

Schema

Parent Property Tipo Required Default
$root $schema cadeia ✔️ Yes None

Each configuration file begins with a $schema property, specifying the JSON schema for validation.

Format

{
  "$schema": <string>
}

Example

{
  "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json"
}

Versioning

Os arquivos de esquema estão disponíveis em URLs específicas, garantindo que você possa usar a versão correta ou o esquema disponível mais recente.

https://github.com/Azure/data-api-builder/releases/download/<VERSION>-<suffix>/dab.draft.schema.json

Substitua VERSION-suffix pela versão desejada.

https://github.com/Azure/data-api-builder/releases/download/v0.3.7-alpha/dab.draft.schema.json

Arquivos de fonte de dados

Parent Property Tipo Required Default
$root data-source-files string array ❌ Não None

O Construtor de API de Dados dá suporte a vários arquivos de configuração, com um designado como as configurações de gerenciamento runtime de arquivos de nível superior. Todas as configurações compartilham o mesmo esquema JSON, permitindo runtime configurações em qualquer arquivo ou em todos os arquivos sem erros. Dividir entidades para uma organização melhor.

Diagrama de vários arquivos de configuração referenciados como uma matriz em um único arquivo de configuração.

Format

{
  "data-source-files": [ "<string>" ]
}

Várias regras de configuração

  • Cada arquivo de configuração deve incluir a propriedade data-source.
  • Cada arquivo de configuração deve incluir a propriedade entities.
  • A configuração de nível superior deve incluir runtime.
  • As configurações filho podem incluir runtime, mas são ignoradas.
  • Os arquivos de configuração filho podem incluir seus próprios arquivos filho.
  • Os arquivos de configuração podem ser organizados em subpastas.
  • Os nomes de entidade devem ser exclusivos em todos os arquivos de configuração.
  • Não há suporte para relações entre entidades em arquivos de configuração diferentes.

Examples

{
  "data-source-files": [
    "dab-config-2.json",
    "my-folder/dab-config-3.json",
    "my-folder/my-other-folder/dab-config-4.json"
  ]
}