Delen via


Meer dan één gegevensbron toevoegen

Data API Builder ondersteunt hybride eindpunten met behulp van gegevensbronbestanden, zodat u meerdere gegevensbronnen en hun entiteiten in afzonderlijke configuratiebestanden kunt definiëren.

Deze benadering is handig voor scenario's zoals:

  • U moet entiteiten uit meer dan één database beschikbaar maken
  • U wilt configuraties modulair organiseren
  • U moet verschillende gegevensback-ends onafhankelijk beheren

Structure

Als u meerdere gegevensbronnen wilt definiëren, maakt u meerdere configuratiebestanden en verwijst u ernaar in de data-source-files matrix van de configuratie op het hoogste niveau.

Bestand op het hoogste niveau

{
  "data-source-files": [
    "dab-config-sql.json",
    "dab-config-cosmos.json"
  ],
  "runtime": {
    "rest": {
      "enabled": true
    },
    "graphql": {
      "enabled": true
    },
    "mcp": {
      "enabled": true
    }

  }
}

Onderliggend bestand: dab-config-sql.json

{
  "data-source": {
    "database-type": "mssql",
    "connection-string": "@env('SQL_CONNECTION_STRING')"
  },
  "entities": {
    "Book": {
      "source": {
        "object": "dbo.Books"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Onderliggend bestand: dab-config-cosmos.json

{
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "connection-string": "@env('COSMOS_CONNECTION_STRING')",
    "options": {
      "database": "library"
    }
  },
  "entities": {
    "LoanRecord": {
      "source": {
        "object": "LoanRecords"
      },
      "permissions": [
        { "role": "anonymous", "actions": [ "read" ] }
      ]
    }
  }
}

Behavior

  • Alleen de instellingen van het bestand runtime op het hoogste niveau worden gerespecteerd
  • Elk onderliggend bestand moet zowel een als data-source een entities sectie bevatten
  • Entiteitsnamen moeten globaal uniek zijn in alle bestanden
  • Entiteiten die in afzonderlijke bestanden zijn gedefinieerd , kunnen niet naar elkaar verwijzen via relaties
  • Bestanden kunnen indien nodig worden genest in submappen

Benefits

  • Schone scheiding van configuratie per back-end
  • Schaalbare API's voor meerdere databases inschakelen
  • Vereenvoudigt onderhoud voor complexe systemen

Limitations

  • Geen relaties tussen configuratiebestanden
  • Verwijzingen naar kringbestanden zijn niet toegestaan
  • Alleen het gedrag van runtime-beheer op het hoogste niveau