Partilhar via


Referência do 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 permite a validação de esquema para o restante do arquivo.

Top-level properties

Property Description
$schema URI do esquema JSON para esta 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 tempo de execução.
entities Objeto que define todas as entidades expostas via 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 backend (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 tempo de execução.
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 GraphQL.
runtime.cache Configuração de cache de resposta global.
runtime.telemetry Configuração de telemetria, registro e monitoramento.
runtime.health Configuração da verificação de integridade global.

Entities properties

Property Description
entities Objeto que define todas as entidades expostas via 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 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 (de caracteres) ✔️ 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 mais recente disponível.

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 suporta vários arquivos de configuração, com um designado como as configurações de gerenciamento de runtime arquivos de nível superior. Todas as configurações compartilham o mesmo esquema JSON, permitindo runtime configurações em qualquer ou todos os arquivos sem erros. Dividir entidades para uma melhor organização.

Diagrama de vários arquivos de configuração referenciados como uma matriz dentro de 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 runtimeo , mas ele é ignorado.
  • 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 relacionamentos entre entidades em diferentes arquivos de configuração.

Examples

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