Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Data API Builder kräver minst en konfigurationsfil för att köras. Den här JSON-baserade filen definierar din API-konfiguration, från miljöinställningar till entitetsdefinitioner. Den börjar med en $schema egenskap som aktiverar schemaverifiering för resten av filen.
Egenskaper på den översta nivån
| Property | Description |
|---|---|
| $schema | URI för JSON-schemat för den här konfigurationen. |
| datakälla | Objekt som innehåller inställningar för databasanslutning. |
| data-source-files | Matris med andra konfigurationsfilsökvägar. |
| runtime | Objekt som konfigurerar körningsbeteenden. |
| entities | Objekt som definierar alla entiteter som exponeras via REST eller GraphQL. |
| autoentiteter | Objekt som definierar mönsterbaserade regler som automatiskt exponerar matchande databasobjekt som entiteter (endast MSSQL). |
| azure-key-vault | Azure Key Vault-konfiguration för hemlig hantering. |
Egenskaper för datakälla
| Property | Description |
|---|---|
| datakälla | Objekt som innehåller inställningar för databasanslutning. |
| data-source.database-type | Databastyp som används i serverdelen (mssql, postgresql, mysql, cosmosdb_nosql, cosmosdb_postgresql). |
| data-source.connection-string | Anslutningssträng för den valda databastypen. |
| data-source.options | Databasspecifika alternativ och avancerade inställningar. |
| data-source.health | Konfiguration av hälsokontroll för datakällan. |
| data-source-files | Matris med andra konfigurationsfilsökvägar. |
Körningsegenskaper
| Property | Description |
|---|---|
| runtime | Objekt som konfigurerar körningsbeteenden. |
| runtime.pagination | Sidnumreringsinställningar för API-svar. |
| runtime.rest | Global konfiguration för REST API. |
| runtime.graphql | Global konfiguration av GraphQL API. |
| runtime.cache | Konfiguration av cachelagring av globala svar. |
| runtime.compression | Http-svarskomprimeringskonfiguration. |
| runtime.mcp | Global konfiguration av Model Context Protocol (MCP). |
| runtime.telemetry | Konfiguration av telemetri, loggning och övervakning. |
| runtime.health | Konfiguration av global hälsokontroll. |
Egenskaper för entiteter
| Property | Description |
|---|---|
| entities | Objekt som definierar alla entiteter som exponeras via REST eller GraphQL. |
| entities.entity-name.source | Information om databaskällan för entiteten. |
| entities.entity-name.rest | REST API-konfiguration för entiteten. |
| entities.entity-name.graphql | GraphQL API-konfiguration för entiteten. |
| entities.entity-name.permissions | Behörigheter och åtkomstkontroll för entiteten. |
| entities.entity-name.relationships | Relationer till andra entiteter. |
| entities.entity-name.cache | Cachelagringskonfiguration på entitetsnivå. |
| entities.entity-name.health | Konfiguration av hälsokontroll på entitetsnivå. |
| entities.entity-name.mcp | MCP-konfiguration på entitetsnivå. |
| entities.entity-name.fields | Fältmetadata, alias och primärnyckelbeteckningar. |
| entities.entity-name.description | Beskrivning av entitet som kan läsas av människor. |
Schema
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
$schema |
string | ✔️ Ja | None |
Varje konfigurationsfil börjar med en $schema egenskap som anger JSON-schemat för validering.
Format
{
"$schema": <string>
}
Example
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json"
}
Tip
Det senaste schemat är alltid tillgängligt på https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json.
Versioning
Schemafiler är tillgängliga på specifika URL:er, vilket säkerställer att du kan använda rätt version eller det senaste tillgängliga schemat.
https://github.com/Azure/data-api-builder/releases/download/<VERSION>-<suffix>/dab.draft.schema.json
Ersätt VERSION-suffix med den version du vill ha.
https://github.com/Azure/data-api-builder/releases/download/v0.3.7-alpha/dab.draft.schema.json
Datakällans filer
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
data-source-files |
strängmatris | ❌ Nej | None |
Data API Builder har stöd för flera konfigurationsfiler, där en har angetts som inställningarna för filhantering runtime på den översta nivån. Alla konfigurationer delar samma JSON-schema, vilket tillåter runtime inställningar i alla filer eller filer utan fel. Dela entiteter för bättre organisation.
Format
{
"data-source-files": [ "<string>" ]
}
Flera konfigurationsregler
- Varje konfigurationsfil måste innehålla egenskapen
data-source. - Varje konfigurationsfil måste innehålla
entitiesegenskapen (ellerautoentities). - Konfigurationen på den översta nivån måste innehålla
runtime. - Underordnade konfigurationer kan innehålla
runtime, men Data API Builder ignorerar det. - Underordnade konfigurationsfiler kan innehålla egna underordnade filer.
- Konfigurationsfiler kan ordnas i undermappar.
- Entitetsnamn måste vara unika för alla konfigurationsfiler.
- Relationer mellan entiteter i olika konfigurationsfiler stöds inte.
Examples
{
"data-source-files": [
"dab-config-2.json",
"my-folder/dab-config-3.json",
"my-folder/my-other-folder/dab-config-4.json"
]
}
Autoentiteter
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
autoentities |
objekt | ❌ Nej | None |
Avsnittet autoentities definierar mönsterbaserade regler som automatiskt exponerar matchande databasobjekt som DAB-entiteter vid start. Varje nyckel i objektet är en namngiven definition som innehåller mönster, en mall och behörigheter.
Viktigt!
Automatiska entiteter stöder för närvarande endast MSSQL-datakällor .
När autoentities är närvarande krävs inte längre avsnittet entities . Konfigurationsschemat tillåter antingen autoentities eller entities (eller båda). Om båda finns har explicit definierade entiteter företräde framför automatiska entiteter som matchar med samma namn.
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>" } ]
}
]
}
}
}
Egenskaper
| Property | Type | Required | Default | Description |
|---|---|---|---|---|
patterns |
objekt | ✔️ Ja | None | Definierar inkluderar, exkluderar och namngivningsregler. |
patterns.include |
strängmatris | ❌ Nej | ["%.%"] |
MSSQL-mönster LIKE för objekt som ska inkluderas. |
patterns.exclude |
strängmatris | ❌ Nej | null |
MSSQL-mönster LIKE för objekt som ska undantas. |
patterns.name |
string | ❌ Nej | "{object}" |
Interpoleringsmönster med hjälp av {schema} och {object}. |
template |
objekt | ❌ Nej | None | Standardkonfiguration som tillämpas på alla matchade entiteter. |
template.mcp |
objekt | ❌ Nej | None | MCP-inställningar för matchade entiteter. |
template.mcp.dml-tools |
booleskt | ❌ Nej | true |
Aktivera verktyg för MCP-datamanipuleringsspråk (DML). |
template.rest |
objekt | ❌ Nej | None | REST-inställningar för matchade entiteter. |
template.rest.enabled |
booleskt | ❌ Nej | true |
Aktivera REST-slutpunkter. |
template.graphql |
objekt | ❌ Nej | None | GraphQL-inställningar för matchade entiteter. |
template.graphql.enabled |
booleskt | ❌ Nej | true |
Aktivera GraphQL. |
template.health |
objekt | ❌ Nej | None | Hälsokontrollinställningar för matchade entiteter. |
template.health.enabled |
booleskt | ❌ Nej | false |
Aktivera hälsokontroller. |
template.cache |
objekt | ❌ Nej | None | Cacheinställningar för matchade entiteter. |
template.cache.enabled |
booleskt | ❌ Nej | false |
Aktivera cachelagring av svar. |
template.cache.ttl-seconds |
integer | ❌ Nej | null |
Cachelagrade time-to-live i sekunder. |
template.cache.level |
string | ❌ Nej | "L1L2" |
Cachenivå. |
permissions |
array | ❌ Nej | None | Behörigheter som tillämpas på alla matchade entiteter. |
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" } ] }
]
}
}
}
Med den här konfigurationen exponeras varje tabell och vy i dbo schemat (förutom de matchande dbo.internal%) automatiskt som en DAB-entitet. Varje entitet namnges med hjälp av {schema}_{object} mönstret (till exempel dbo_Products), har REST och GraphQL aktiverat, använder cachelagring med en 30-sekunders TTL (time-to-live) och ger read åtkomst till anonymous rollen.
Tip
Använd dab auto-config för att skapa definitioner av automatiska entiteter från CLI och dab auto-config-simulate för att förhandsgranska vilka objekt som matchar innan du genomför ändringar. Mer information finns i nyheter i version 2.0.
Azure 密钥保管库
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
$root |
azure-key-vault |
objekt | ❌ Nej | None |
Konfigurerar Azure Key Vault-integrering för hantering av hemligheter. I förekommande fall krävs egenskapen endpoint .
Kapslade egenskaper
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault |
endpoint |
string | ✔️ Ja | None |
azure-key-vault |
retry-policy |
objekt | ❌ Nej | None |
| Parent | Property | Type | Required | Default |
|---|---|---|---|---|
azure-key-vault.retry-policy |
mode |
uppräkning (fixed | exponential) |
❌ Nej | "exponential" |
azure-key-vault.retry-policy |
max-count |
integer | ❌ Nej | 3 |
azure-key-vault.retry-policy |
delay-seconds |
integer | ❌ Nej | 1 |
azure-key-vault.retry-policy |
max-delay-seconds |
integer | ❌ Nej | 60 |
azure-key-vault.retry-policy |
network-timeout-seconds |
integer | ❌ Nej | 60 |
Om du vill referera till hemligheter som lagras i Azure Key Vault använder du @akv() funktionen i dina konfigurationsvärden. Data API Builder löser dessa referenser vid start med hjälp av den konfigurerade slutpunkten.
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')"
}
}