Sdílet prostřednictvím


Přidání více než jednoho zdroje dat

Tvůrce rozhraní Data API podporuje hybridní koncové body prostřednictvím použití souborů zdroje dat, což umožňuje definovat více zdrojů dat a jejich entit v samostatných konfiguračních souborech.

To je užitečné v těchto případech:

  • Potřebujete zveřejnit entity z více než jedné databáze.
  • Chcete uspořádat konfigurace modulárním způsobem
  • Potřebujete nezávisle spravovat různé back-endy dat.

Structure

Pokud chcete definovat více zdrojů dat, vytvořte několik konfiguračních souborů a odkazujte na ně v data-source-files poli konfigurace nejvyšší úrovně.

Top-level file

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

Podřízený soubor: 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" ] }
      ]
    }
  }
}

Podřízený soubor: 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

  • Respektuje se pouze nastavení souboru runtime nejvyšší úrovně.
  • Každý podřízený soubor musí obsahovat oddíl i data-sourceentities
  • Názvy entit musí být globálně jedinečné pro všechny soubory.
  • Entity definované v samostatných souborech nemohou vzájemně odkazovat prostřednictvím relací.
  • Soubory je možné podle potřeby vnořit do podsložek.

Benefits

  • Vyčištění oddělení konfigurace na back-end
  • Umožňuje škálovatelná vícebázová rozhraní API.
  • Zjednodušuje údržbu složitých systémů.

Limitations

  • Žádné relace mezi konfiguračními soubory
  • Cyklické odkazy na soubory nejsou povoleny.
  • Chování modulu runtime řídí pouze soubor nejvyšší úrovně.