Dela via


Lägga till mer än en datakälla

Data API Builder stöder hybridslutpunkter med hjälp av datakällans filer, så att du kan definiera flera datakällor och deras entiteter i separata konfigurationsfiler.

Detta är användbart när:

  • Du måste exponera entiteter från mer än en databas
  • Du vill ordna konfigurationer modulärt
  • Du måste hantera olika dataserverdelar oberoende av varandra

Structure

Om du vill definiera flera datakällor skapar du flera konfigurationsfiler och refererar till dem i matrisen data-source-files för konfigurationen på den översta nivån.

Top-level file

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

Underordnad fil: 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" ] }
      ]
    }
  }
}

Underordnad fil: dab-config-cosmos.json

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

Behavior

  • Endast inställningarna för den översta nivån i filen runtime respekteras
  • Varje underordnad fil måste innehålla både ett data-source och entities ett avsnitt
  • Entitetsnamn måste vara globalt unika för alla filer
  • Entiteter som definieras i separata filer kan inte referera till varandra via relationer
  • Filer kan kapslas i undermappar efter behov

Benefits

  • Rensa separation av konfiguration per serverdel
  • Aktiverar skalbara API:er för flera databaser
  • Förenklar underhåll för komplexa system

Limitations

  • Inga relationer mellan konfigurationsfiler
  • Cirkelfilreferenser tillåts inte
  • Endast körningsbeteendet för de översta filkontrollerna