Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
Proprietà di primo livello
| Property | Description |
|---|---|
| $schema | URI dello schema JSON per questa configurazione. |
| origine dati | 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. |
| autoentities | Oggetto che definisce regole basate su criteri che espongono automaticamente oggetti di database corrispondenti come entità (solo MSSQL). |
| azure-key-vault | Configurazione di Azure Key Vault per la gestione dei segreti. |
Proprietà dell'origine dati
| Property | Description |
|---|---|
| origine dati | 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. |
Proprietà di runtime
| 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.compression | Configurazione della compressione della risposta HTTP. |
| runtime.mcp | Configurazione globale mcp (Model Context Protocol). |
| runtime.telemetry | Telemetria, registrazione e monitoraggio della configurazione. |
| runtime.health | Configurazione del controllo integrità globale. |
Proprietà delle entità
| 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à. |
| entities.entity-name.mcp | Configurazione MCP a livello di entità. |
| entities.entity-name.fields | Metadati dei campi, alias e designazioni di chiave primaria. |
| entities.entity-name.description | Descrizione dell'entità leggibile. |
Schema
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
$schema |
string | ✔️ Sì | None |
Ogni file di configurazione inizia con una $schema proprietà , specificando lo schema JSON per la convalida.
Format
{
"$schema": <string>
}
Example
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json"
}
Tip
Lo schema più recente è sempre disponibile in 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 |
Matrice di stringhe | ❌ 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.
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
entitiesproprietà (oautoentities). - La configurazione di primo livello deve includere
runtime. - Le configurazioni figlio possono includere
runtime, ma il generatore di API dati lo ignora. - 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"
]
}
Autoentities
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
autoentities |
oggetto | ❌ No | None |
La autoentities sezione definisce regole basate su criteri che espongono automaticamente oggetti di database corrispondenti come entità DAB all'avvio. Ogni chiave nell'oggetto è una definizione denominata contenente modelli, un modello e autorizzazioni.
Importante
Le origini dati MSSQL attualmente supportano solo le origini dati MSSQL .
Quando autoentities è presente, la entities sezione non è più necessaria. Lo schema di configurazione consente o autoentitiesentities (o entrambi). Se entrambi sono presenti, le entità definite in modo esplicito hanno la precedenza sulle corrispondenze di auto con lo stesso nome.
Format
{
"autoentities": {
"<definition-name>": {
"patterns": {
"include": [ "<string>" ],
"exclude": [ "<string>" ],
"name": "<string>"
},
"template": {
"mcp": { "dml-tools": <boolean> },
"rest": { "enabled": <boolean> },
"graphql": { "enabled": <boolean> },
"health": { "enabled": <boolean> },
"cache": {
"enabled": <boolean>,
"ttl-seconds": <integer>,
"level": "<string>"
}
},
"permissions": [
{
"role": "<string>",
"actions": [ { "action": "<string>" } ]
}
]
}
}
}
Proprietà
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
patterns |
oggetto | ✔️ Sì | None | Definisce regole di inclusione, esclusione e denominazione. |
patterns.include |
Matrice di stringhe | ❌ No | ["%.%"] |
Modelli MSSQL LIKE per gli oggetti da includere. |
patterns.exclude |
Matrice di stringhe | ❌ No | null |
Modelli MSSQL LIKE per gli oggetti da escludere. |
patterns.name |
string | ❌ No | "{object}" |
Modello di interpolazione con {schema} e {object}. |
template |
oggetto | ❌ No | None | Configurazione predefinita applicata a tutte le entità corrispondenti. |
template.mcp |
oggetto | ❌ No | None | Impostazioni MCP per le entità corrispondenti. |
template.mcp.dml-tools |
boolean | ❌ No | true |
Abilitare gli strumenti DML (Data Manipulation Language) MCP. |
template.rest |
oggetto | ❌ No | None | Impostazioni REST per le entità corrispondenti. |
template.rest.enabled |
boolean | ❌ No | true |
Abilitare gli endpoint REST. |
template.graphql |
oggetto | ❌ No | None | Impostazioni di GraphQL per le entità corrispondenti. |
template.graphql.enabled |
boolean | ❌ No | true |
Abilitare GraphQL. |
template.health |
oggetto | ❌ No | None | Impostazioni di controllo dell'integrità per le entità corrispondenti. |
template.health.enabled |
boolean | ❌ No | false |
Abilitare i controlli di integrità. |
template.cache |
oggetto | ❌ No | None | Impostazioni della cache per le entità corrispondenti. |
template.cache.enabled |
boolean | ❌ No | false |
Abilitare la memorizzazione nella cache delle risposte. |
template.cache.ttl-seconds |
numero intero | ❌ No | null |
Tempo di memorizzazione nella cache in secondi. |
template.cache.level |
string | ❌ No | "L1L2" |
Livello di cache. |
permissions |
array | ❌ No | None | Autorizzazioni applicate a tutte le entità corrispondenti. |
Example
{
"autoentities": {
"my-def": {
"patterns": {
"include": [ "dbo.%" ],
"exclude": [ "dbo.internal%" ],
"name": "{schema}_{object}"
},
"template": {
"rest": { "enabled": true },
"graphql": { "enabled": true },
"cache": { "enabled": true, "ttl-seconds": 30, "level": "l1l2" }
},
"permissions": [
{ "role": "anonymous", "actions": [ { "action": "read" } ] }
]
}
}
}
Con questa configurazione, ogni tabella e vista nello dbo schema (ad eccezione di quelle corrispondenti dbo.internal%) viene esposta automaticamente come entità DAB. Ogni entità viene denominata usando il {schema}_{object} modello (ad esempio dbo_Products, ), ha REST e GraphQL abilitato, usa la memorizzazione nella cache con una durata (TTL) di 30 secondi e concede read l'accesso anonymous al ruolo.
Tip
Usare dab auto-config per creare definizioni di autoentities dall'interfaccia della riga di comando e dab auto-config-simulate visualizzare in anteprima gli oggetti corrispondenti prima di eseguire il commit delle modifiche. Per altre informazioni, vedere le novità della versione 2.0.
Azure Key Vault (Archivio chiavi di Azure)
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
azure-key-vault |
oggetto | ❌ No | None |
Configura l'integrazione di Azure Key Vault per la gestione dei segreti. Quando presente, la endpoint proprietà è obbligatoria.
Proprietà annidate
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault |
endpoint |
string | ✔️ Sì | None |
azure-key-vault |
retry-policy |
oggetto | ❌ No | None |
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault.retry-policy |
mode |
enumerazione (fixed | exponential) |
❌ No | "exponential" |
azure-key-vault.retry-policy |
max-count |
numero intero | ❌ No | 3 |
azure-key-vault.retry-policy |
delay-seconds |
numero intero | ❌ No | 1 |
azure-key-vault.retry-policy |
max-delay-seconds |
numero intero | ❌ No | 60 |
azure-key-vault.retry-policy |
network-timeout-seconds |
numero intero | ❌ No | 60 |
Per fare riferimento ai segreti archiviati in Azure Key Vault, usare la @akv() funzione nei valori di configurazione. Il generatore di API dati risolve questi riferimenti all'avvio usando l'endpoint configurato.
Format
{
"azure-key-vault": {
"endpoint": "<string>",
"retry-policy": {
"mode": <"exponential"> (default) | <"fixed">,
"max-count": <integer; default: 3>,
"delay-seconds": <integer; default: 1>,
"max-delay-seconds": <integer; default: 60>,
"network-timeout-seconds": <integer; default: 60>
}
}
}
Example
{
"azure-key-vault": {
"endpoint": "https://my-vault.vault.azure.net/",
"retry-policy": {
"mode": "exponential",
"max-count": 5,
"delay-seconds": 2,
"max-delay-seconds": 120,
"network-timeout-seconds": 90
}
},
"data-source": {
"database-type": "mssql",
"connection-string": "@akv('sql-connection-string')"
}
}