Condividi tramite


Informazioni di riferimento sullo schema di configurazione di Generatore API dati

Il generatore di API dati richiede almeno un file di configurazione da eseguire. Questo file basato su JSON definisce la configurazione dell'API, dalle impostazioni dell'ambiente alle definizioni di entità. Inizia con una $schema proprietà che abilita la convalida dello schema per il resto del file.

Top-level properties

Property Description
$schema URI dello schema JSON per questa configurazione.
data-source Oggetto contenente le impostazioni di connettività del database.
data-source-files Matrice di altri percorsi di file di configurazione.
runtime Oggetto che configura i comportamenti di runtime.
entities Oggetto che definisce tutte le entità esposte tramite REST o GraphQL.

Data-source properties

Property Description
data-source Oggetto contenente le impostazioni di connettività del database.
data-source.database-type Tipo di database usato nel back-end (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql).
data-source.connection-string Stringa di connessione per il tipo di database selezionato.
data-source.options Opzioni specifiche del database e impostazioni avanzate.
data-source.health Configurazione del controllo integrità per l'origine dati.
data-source-files Matrice di altri percorsi di file di configurazione.

Runtime properties

Property Description
runtime Oggetto che configura i comportamenti di runtime.
runtime.pagination Impostazioni di paginazione per le risposte api.
runtime.rest Configurazione globale dell'API REST.
runtime.graphql Configurazione globale dell'API GraphQL.
runtime.cache Configurazione della memorizzazione nella cache delle risposte globali.
runtime.telemetry Telemetria, registrazione e monitoraggio della configurazione.
runtime.health Configurazione del controllo integrità globale.

Entities properties

Property Description
entities Oggetto che definisce tutte le entità esposte tramite REST o GraphQL.
entities.entity-name.source Dettagli dell'origine del database per l'entità.
entities.entity-name.rest Configurazione dell'API REST per l'entità.
entities.entity-name.graphql Configurazione dell'API GraphQL per l'entità.
entities.entity-name.permissions Autorizzazioni e controllo di accesso per l'entità.
entities.entity-name.relationships Relazioni con altre entità.
entities.entity-name.cache Configurazione della memorizzazione nella cache a livello di entità.
entities.entity-name.health Configurazione del controllo integrità a livello di entità.

Schema

Parent Property Type Required Default
$root $schema string ✔️ 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

I file di schema sono disponibili in URL specifici, assicurandosi di poter usare la versione corretta o lo schema disponibile più recente.

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

Sostituire VERSION-suffix con la versione desiderata.

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

File di origine dati

Parent Property Type Required Default
$root data-source-files string array ❌ No None

Il generatore di API dati supporta più file di configurazione, con uno designato come file di primo livello che gestisce runtime le impostazioni. Tutte le configurazioni condividono lo stesso schema JSON, consentendo runtime le impostazioni in qualsiasi file o in ogni file senza errori. Suddividere le entità per un'organizzazione migliore.

Diagramma di più file di configurazione a cui si fa riferimento come matrice all'interno di un singolo file di configurazione.

Format

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

Più regole di configurazione

  • Ogni file di configurazione deve includere la proprietà data-source.
  • Ogni file di configurazione deve includere la proprietà entities.
  • La configurazione di primo livello deve includere runtime.
  • Le configurazioni figlio possono includere runtime, ma vengono ignorate.
  • I file di configurazione figlio possono includere i propri file figlio.
  • I file di configurazione possono essere organizzati in sottocartelle.
  • I nomi delle entità devono essere univoci in tutti i file di configurazione.
  • Le relazioni tra entità in file di configurazione diversi non sono supportate.

Examples

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