Novinky ve verzi 0.11 a starších verzích
Poznámky k verzi a informace o všech aktualizacích a vylepšeních v Tvůrci rozhraní Data API verze 0.11 a starších verzích
Novinky ve verzi 0.11
Poznámky k verzi a informace o aktualizacích a vylepšeních v Tvůrci rozhraní Data API verze 0.10.
Podpora GraphQL pro SQL Data Warehouse
SQL Data Warehouse teď podporuje koncové body GraphQL.
Vylepšené filtrování služby Azure Cosmos DB for NoSQL
Azure Cosmos DB for NoSQL teď podporuje vnořené filtry, proměnné ID a vyhledávání v polích řetězců pomocí operátoru contains
.
Povolení shromažďování dat aplikací pomocí rozhraní příkazového řádku
Teď můžete pomocí rozhraní příkazového řádku (CLI) DAB povolit shromažďování dat pomocí Application Insights.
Novinky ve verzi 0.10
Poznámky k verzi a informace o aktualizacích a vylepšeních v Tvůrci rozhraní Data API verze 0.10.
S tím, jak se blížíme obecné dostupnosti, se naše zaměření přesouvá ke stabilitě. I když ne všechny snahy o kvalitu kódu a stabilitu modulu jsou v tomto článku podrobně popsané, tento seznam upozorňuje na důležité aktualizace.
Poznámky k verzi na GitHubu
Projděte si tyto stránky verzí, kde najdete úplný seznam všech změn a vylepšení:
- 6. 2. 2024 – verze 0.10.23
- 31. 1. 2024 – verze 0.10.21
- 7. 12. 2023 – verze 0.10.11
Ukládání do mezipaměti v paměti
Verze 0.10 zavádí ukládání do mezipaměti v paměti pro koncové body REST a GraphQL. Tato funkce, navržená pro interní ukládání do mezipaměti, představuje základ pro budoucí distribuované ukládání do mezipaměti. Ukládání do mezipaměti v paměti snižuje zatížení databáze z opakovaných dotazů.
Scénáře ukládání do mezipaměti
- Snížení zatížení databáze: Do mezipaměti se ukládají výsledky náročných dotazů, takže není potřeba provádět opakovaná volání databáze.
- Vylepšení škálovatelnosti rozhraní API: Ukládání do mezipaměti podporuje častější volání rozhraní API bez zvýšení požadavků na databázi a významné škálování možností rozhraní API.
Změny konfigurace
Nastavení ukládání do mezipaměti jsou k dispozici v části runtime
a pro každou entitu, která nabízí podrobné řízení.
Nastavení modulu runtime:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Ukládání do mezipaměti je ve výchozím nastavení zakázané.
- Výchozí hodnota TTL (Time to Live) je 5 sekund.
Nastavení entity:
{
"Book": {
"source": {
"object": "books",
"type": "table"
},
"graphql": {
"enabled": true,
"type": {
"singular": "book",
"plural": "books"
}
},
"rest": {
"enabled": true
},
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "*"
}
]
}
],
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
Ověření konfigurace v rozhraní příkazového řádku
Rozhraní příkazového řádku teď podporuje dab validate
kontrolu chyb nebo nekonzistence v konfiguračních souborech, což vylepšuje pracovní postup vývoje.
Postup ověření
- Ověřování schématu
- Ověření vlastností konfigurace
- Ověření oprávnění ke konfiguraci
- Ověření připojení k databázi
- Ověření metadat entit
Funkce Preview
Novinky ve verzi 0.9
Tady jsou podrobnosti o nejrelevantních změnách a vylepšeních v Tvůrci rozhraní Data API 0.9.
Poznámky k verzi na GitHubu
Projděte si tyto stránky verzí, kde najdete úplný seznam všech změn a vylepšení:
Povolení Application Insights při vlastním hostování DAB
Protokoly se teď dají streamovat do Application Insights, aby se zlepšilo prostředí pro monitorování a ladění, zejména když je tvůrce rozhraní Data API nasazený v Azure. Do konfiguračního souboru je možné přidat nový telemetry
oddíl, který povolí a nakonfiguruje integraci s Application Insights:
"telemetry": {
"application-insights": {
"enabled": true, // To enable/disable application insights telemetry
"connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
}
}
Všechny podrobnosti si můžete přečíst na stránce dokumentace k použití Application Insights .
Podpora ignorování nadbytečných polí v textu požadavku REST
S novou request-body-strict
možností se teď můžete rozhodnout, jestli další pole v datové části REST vygeneruje chybu (výchozí chování, zpětná kompatibilita), nebo jestli se pole navíc tiše ignorují.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Nastavením request-body-strict
možnosti na false
budou pole, která nemají mapování na související databázový objekt, ignorována, aniž by došlo k chybě.
Přidání názvu aplikace pro mssql
připojení
Tvůrce rozhraní Data API teď do připojovacího řetězce vloží hodnotu dab-<version>
jako Application Name
vlastnost pouze pro mssql
databázové typy, což usnadňuje identifikaci připojení na databázovém serveru. Pokud Application Name
už připojovací řetězec obsahuje, připojí se k němu verze Tvůrce datového rozhraní API.
Podpora time
datového typu v mssql
time
datový typ se teď podporuje v mssql
databázích.
Mutace na tabulce se triggery pro mssql
Mutace jsou nyní plně podporovány u tabulek s triggery pro mssql
databáze.
Zabránění aktualizaci nebo vložení polí jen pro čtení do tabulky uživatelem
Automaticky rozpozná databáze pole jen pro čtení a zabrání uživatelům aktualizovat nebo vložit tato pole.
Novinky ve verzi 0.8
Tady jsou podrobnosti o nejrelevantních změnách a vylepšeních v Tvůrci rozhraní Data API 0.8.
Poznámky k verzi na GitHubu
Projděte si tyto stránky verzí, kde najdete úplný seznam všech změn a vylepšení:
- 0.8.52: Stránka verze GitHubu
- 0.8.51: Stránka verze GitHubu
- 0.8.50: Stránka verze GitHubu
- 0.8.49: Stránka verze GitHubu
Přidání podpory pro soubor .env
Proměnné prostředí chrání tajné kódy před vystavením prostého textu a umožňují výměnu hodnot v různých nastaveních. Tyto proměnné však musí být nastaveny v oboru uživatele nebo počítače, což může vést k křížovému "krvácení" proměnných, pokud jsou názvy proměnných duplikovány. Lepší alternativou jsou soubory prostředí. Další informace najdete v tématu Soubory prostředí v tvůrci rozhraní Data API – blog.
Novinky ve verzi 0.7.6
Tento článek popisuje poznámky k verzi 0.7.6.
Žádosti o přijetí změn v GitHubu
- Řešení problému s odepření přístupu k filtru ve službě Cosmos
- Oprava chyby pro ověřování polí služby Azure Cosmos DB, když má graphql hodnotu true, include je *.
Počáteční podpora vytvoření dokumentu s popisem OpenAPI v3-0-1
Tvůrce rozhraní Data API podporuje standard OpenAPI pro generování a zveřejnění dokumentů s popisem, které obsahují užitečné informace o službě. Tyto dokumenty se vytvářejí z konfiguračního souboru modulu runtime a metadat pro každý databázový objekt. Tyto objekty jsou přidružené k entitě s podporou REST definované ve stejném konfiguračním souboru. Pak jsou zpřístupněny prostřednictvím uživatelského rozhraní a zpřístupněny jako serializovaný soubor.
Další informace o specifikách OpenAPI a Tvůrce rozhraní Data API najdete v tématu OpenAPI.
Povolení sloučení konfiguračních souborů
Přidává možnost automatického sloučení dvou konfiguračních souborů.
Je možné udržovat několik párů konfiguračních souborů standardních hodnot a konfiguračních souborů specifických pro prostředí, aby se zjednodušila správa nastavení specifických pro prostředí. Je například možné udržovat samostatné konfigurace pro vývoj a produkci. Tento krok zahrnuje základní konfigurační soubor, který obsahuje všechna společná nastavení mezi různými prostředími. DAB_ENVIRONMENT
Nastavením proměnné pak můžete řídit, které konfigurační soubory se mají sloučit, aby je tvůrce rozhraní Data API spotřeboval.
Další informace najdete v referenčních informacích k rozhraní příkazového řádku.
Spouštění mutací GraphQL a REST v transakci
Tvůrce rozhraní Data API vytváří databázové transakce ke spouštění určitých typů požadavků GraphQL a REST.
Existuje mnoho požadavků, které zahrnují provedení více než jednoho databázového dotazu. Pokud chcete například vrátit výsledky z aktualizace, je třeba nejprve provést dotaz na aktualizaci a pak se musí před vrácením přečíst nové hodnoty. Pokud požadavek vyžaduje ke spuštění více databázových dotazů, Tvůrce rozhraní Data API teď tyto databázové dotazy spustí v rámci jedné transakce.
Další informace o této funkci v kontextu REST najdete v dokumentaci k REST a o GraphQL v dokumentaci k GraphQL.
Novinky ve verzi 0.6.14
Tento článek popisuje opravu tvůrce rozhraní Data API pro databáze Azure v březnu 2023.
Opravy chyb
- Vyřešte problém s odepřeným přístupem k filtru dotazů ve službě Cosmos.
- Cosmos DB v současné době nepodporuje autorizaci na úrovni polí. Aby se zabránilo situaci, kdy uživatelé omylem předají
field
oprávnění v konfiguraci modulu runtime, přidali jsme ověřovací kontrolu.
Novinky ve verzi 0.6.13
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Nový příkaz rozhraní příkazového řádku pro export schématu GraphQL
Přidá se nová možnost pro export schématu GraphQL. Tím se spustí server DAB a potom se na něj před zápisem do zadaného umístění odešle dotaz na získání schématu.
dab export --graphql -c dab-config.development.json -o ./schemas
Tento příkaz vygeneruje soubor schématu GraphQL v adresáři ./schemas. Cesta ke konfiguračnímu souboru je volitelný parametr, který ve výchozím nastavení používá dab-config.json, pokud není dab-config.<>DAB_ENVIRONMENT.json existuje, kde DAB_ENVIRONMENT je proměnná prostředí.
Podpora zásad databáze pro akci vytvoření pro MsSql
Zásady databáze se teď podporují pro všechny operace CRUD (vytvoření, čtení, aktualizace, odstranění) pro MsSql. Příklad:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
Předchozí konfigurace entity Revenue
značí, že uživatel, který provádí operaci vložení s rolí Authenticated
, nemůže vytvořit záznam s výnosy, které jsou menší nebo rovné nule.
Možnost konfigurace cesty GraphQL a globálního zakázání koncových bodů REST a GraphQL prostřednictvím rozhraní příkazového řádku
Teď podporujeme tři další možnosti příkazu init
:
graphql.path
: Poskytnutí vlastní cesty GraphQLrest.disabled
: Globální zakázání koncových bodů RESTgraphql.disabled
: Globální zakázání koncových bodů GraphQL
Příkaz by například init
vygeneroval konfigurační soubor s oddílem modulu runtime:
dab init --database-type mssql --rest.disabled --graphql.disabled --graphql.path /gql
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/gql"
},
}
Povinná klíčová pole pro přidání a aktualizaci zobrazení v rozhraní příkazového řádku
Při každém přidání nového zobrazení databáze (přes dab add
) do konfigurace prostřednictvím rozhraní příkazového řádku je teď pro uživatele povinné zadat pole s klíči (která se mají použít jako primární klíč) prostřednictvím možnosti source.key-fields
zveřejnění. Při každé aktualizaci čehokoli v konfiguraci zobrazení (přes dab update
) v konfiguračním souboru prostřednictvím rozhraní příkazového řádku se také v případě, že aktualizace změní cokoli, co souvisí s definicí zobrazení v podkladové databázi (například typ zdroje, pole s klíči), je také nutné zadat pole s klíči v příkazu update.
Stále však podporujeme zobrazení bez explicitních primárních klíčů zadaných v konfiguraci, ale konfigurace těchto zobrazení musí být zapsána přímo do konfiguračního souboru.
Například příkaz dab add
slouží k přidání zobrazení:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Tento příkaz vygeneruje konfiguraci pro books_view
entitu, která je podobná tomuto příkladu:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Nahrazení odkazu na úložiště Azure odkazy na GitHub
Vzhledem k tomu, že dab je teď opensourcový, nepotřebujeme stahovat artefakty z účtu úložiště. Místo toho je můžeme stáhnout přímo z GitHubu. Propojení se proto odpovídajícím způsobem aktualizují.
Novinky ve verzi 0.5.34
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Respektovat příznak s povoleným ROZHRANÍm REST a GraphQL na úrovni modulu runtime
Přidali jsme novou možnost, která umožňuje povolení nebo zakázání požadavků REST/GraphQL pro všechny entity na úrovni modulu runtime. Pokud by byla zakázána globálně, žádné entity by nebyly přístupné prostřednictvím požadavků REST nebo GraphQL bez ohledu na nastavení jednotlivých entit. Pokud je tato možnost povolená globálně, jsou jednotlivé entity ve výchozím nastavení přístupné, pokud nejsou explicitně zakázány nastavením na úrovni entity.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
ID korelace v protokolech požadavků
Abychom pomohli s laděním, připojíme ID korelace ke všem protokolům vygenerovaným během požadavku. Vzhledem k tomu, že může být podáno mnoho požadavků, je důležitý způsob, jak identifikovat protokoly konkrétního požadavku, aby proces ladění pomohl.
Podpora operací pomocí zástupných znaků pro uložené procedury v modulu a rozhraní příkazového řádku
U uložených procedur se role teď dají nakonfigurovat pomocí akce se zástupnými znakůýmimi *
execute
procedurami.
Novinky ve verzi 0.5.32
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Možnost přizpůsobení cesty REST prostřednictvím rozhraní příkazového řádku
V příkazu se zavádí init
nová možnost --rest.path
pro přizpůsobení cesty pro rozhraní REST API.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Tento příkaz nakonfiguruje koncové body REST s předponou rest-api
. Úplná cesta pro koncové body REST je https://<dab-server>/rest-api/<entity-name>
Pokud --rest.path
se možnost nepoužije, koncové body REST se nakonfigurují s výchozí předponou api
. Úplná cesta v tomto případě je https://<dab-server>/api/<entity-name>
Image kontejneru tvůrce rozhraní Data API v MAR
Oficiální image Dockeru pro Tvůrce rozhraní Data API pro databáze Azure jsou teď k dispozici ve službě Microsoft Artifact Registry.
Pokyny k použití publikovaných imagí najdete v tématu Microsoft Container Registry – Tvůrce rozhraní Data API.
Podpora fragmentů GraphQL
Fragmenty jsou opakovaně použitelnou součástí dotazu graphQL. Ve scénářích, kdy se stejná pole musí dotazovat v různých dotazech, je možné opakovaná pole konsolidovat do jedné opakovaně použitelné komponenty označované jako fragment.
Další informace o fragmentech najdete v tématu Dotazy GraphQL.
Dále je definován fragment volaný description
podle typu Character
:
fragment description on Character {
name
homePlanet
primaryFunction
}
Dotaz GraphQL, který využívá definovaný fragment, je možné vytvořit, jak je znázorněno tady:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Výsledek předchozího dotazu obsahuje následující pole:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
Zapnutí Funkce BinSkim a oprava upozornění policheck
BinSkim je přenosný spustitelný (PE) odlehčený skener, který ověřuje nastavení kompilátoru a linkeru a další vlastnosti binárních souborů relevantních pro zabezpečení. V kanálu se přidá úloha static-tools
kanálu, která při každém spuštění kanálu provede kontroly BinSkim. Systém PoliCheck je sada nástrojů a dat, které pomáhají dodržovat požadavky na kontrolu textu a kódu v rámci celkových zásad globální připravenosti. Upozornění vygenerovaná kontrolami polichecku jsou pevně nastavená tak, aby vyhovovala citlivým podmínkám.
Novinky ve verzi 0.5.0
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Veřejné schéma JSON
Veřejné schéma JSON poskytuje podporu intellisense, pokud používáte integrované vývojové prostředí, jako je Visual Studio Code, které podporuje schémata JSON. Soubor basic-empty-dab-config.json
ve samples
složce má při ručním vytváření souboru příklad výchozího dab-config.json
bodu.
Veřejný Microsoft.DataApiBuilder
NuGet
Microsoft.DataApiBuilder
Je teď k dispozici jako veřejný balíček NuGet pro usnadnění instalace pomocí nástroje dotnet, a to následujícím způsobem:
dotnet tool install --global Microsoft.DataApiBuilder
Nová execute
akce pro uložené procedury v Azure SQL
Nová execute
akce se zavádí jako jediná povolená akce v části konfiguračního souboru pouze v permissions
případech, kdy zdrojový typ zálohuje entitu stored-procedure
. Ve výchozím nastavení je pro takové entity povolena pouze POST
metoda a pouze operace GraphQL mutation
je nakonfigurována s předponou execute
přidanou k jejich názvu. Explicitním zadáním povolené methods
hodnoty v rest
části konfiguračního souboru toto chování přepíšete. Podobně pro GraphQL může být hodnota operation
v graphql
části přepsána na hodnotu .query
Další informace najdete v tématu zobrazení a uložené procedury.
Nový mappings
oddíl
mappings
V části pod jednotlivými entity
objekty jsou pro koncové body GraphQL i REST definována mapování mezi názvy polí databázových objektů a jejich odpovídajícími vystavené názvy polí.
Formát je:
<database_field>: <entity_field>
Příklad:
"mappings":{
"title": "descriptions",
"completed": "done"
}
Pole title
v souvisejícím databázovém objektu se mapuje na description
pole typu GraphQL nebo v datové části požadavku a odpovědi REST.
Podpora kontextu relace v Azure SQL
DaB teď podporuje odesílání dat do podkladové databáze SQL Serveru prostřednictvím SESSION_CONTEXT, aby bylo možné povolit další vrstvu zabezpečení (například zabezpečení na úrovni řádků( RLS). Další podrobnosti najdete v tomto podrobném dokumentu o SESSION_CONTEXT: Autorizace za běhu do databáze.
Podpora filtrování vnořených objektů v dokumentu v PostgreSQL
S PostgreSQL teď můžete použít vztah objektu nebo pole definovaný ve schématu, který umožňuje provádět operace filtrování s vnořenými objekty stejně jako Azure SQL.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Podpora skalárního seznamu ve službě Cosmos DB NoSQL
Pro Cosmos DB je teď přidaná možnost dotazování List
skalárů.
Zvažte tuto definici typu.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Nyní je možné spustit dotaz, který načte seznam, například
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Vylepšená podpora protokolování s využitím úrovně protokolu
- Výchozí úrovně protokolování pro modul, když
host.mode
jeProduction
aDevelopment
jsou aktualizovány naError
aDebug
v uvedeném pořadí. - Během spouštění modulu se pro každý sloupec entity protokolují informace, jako jsou zveřejněné názvy polí a primární klíč. K tomuto chování dochází i při automatickém generování mapování polí.
- Ve scénáři místního spuštění se všechny dotazy, které se vygenerují a spustí během spouštění modulu, protokolují na
Debug
úrovni . - Pro každou entitu se protokolují pole relací, jako
source.fields
jsou ,target.fields
acardinality
. Pokud existuje relace M:N,linking.object
linking.source.fields
, alinking.target.fields
odvozené z databáze (nebo z konfiguračního souboru) se zaprotokolují. - Pro každý příchozí požadavek se zaprotokoluje role a stav ověřování požadavku.
- V rozhraní příkazového řádku se
Microsoft.DataAPIBuilder
zaprotokoluje verze spolu s protokoly přidruženými ke spuštění příslušného příkazu.
Aktualizované rozhraní příkazového řádku
--no-https-redirect
do příkazu se přidástart
možnost . Pomocí této možnosti je možné zabránit automatickému přesměrování požadavků zhttp
dohttps
.V MsSql je možné kontext relace povolit pomocí
--set-session-context true
příkazu .init
Ukázkový příkaz je znázorněný v tomto příkladu:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Podrobnosti ověřování, jako je poskytovatel, cílová skupina a vystavitel, je možné nakonfigurovat pomocí možností
--auth.provider
,--auth.audience
a--auth.issuer.
vinit
příkazu . V této ukázce je uvedený ukázkový příkaz:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Uživatelsky přívětivé chybové zprávy, když není zadaný název entity.
Novinky ve verzi 0.4.11
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Aktualizované schéma JSON pro data-source
oddíl
Oddíl data-source
v konfiguračním souboru se aktualizuje tak, aby byl konzistentní napříč všemi podporovanými databázemi, ale stále umožňuje, aby každá databáze měla vlastní konfigurace. Zavádí se nový oddíl options
, který seskupuje všechny vlastnosti specifické pro databázi. Příklad:
{
"$schema": "https://dataapibuilder.azureedge.net/schemas/v0.4.11-alpha/dab.draft.schema.json",
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
},
"connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;"
}
}
Prvky dostupné v oddílu options
závisí na zvoleném database-type
objektu .
Podpora filtrování vnořených objektů v dokumentu v Azure SQL a SQL Serveru
S Azure SQL a SQL Serverem můžete použít vztah objektu nebo pole definovaný ve schématu, který umožňuje provádět operace filtrování u vnořených objektů.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Vylepšená podpora uložených procedur
Plná podpora pro uloženou proceduru v REST a GraphQL. Uložená procedura s parametry se teď 100% podporuje. V dokumentaci k uloženým procedurách se dozvíte, jak používat Tvůrce rozhraní Data API s uloženými procedurami.
Přejmenování nové database-type
hodnoty pro Cosmos DB
Přidali jsme podporu rozhraní API PostgreSQL se službou Cosmos DB. U konsolidovaného data-source
oddílu atribut database-type
označuje typ databáze. Vzhledem k tomu, že Cosmos DB podporuje více rozhraní API, aktuálně podporované typy databází jsou cosmosdb_nosql
a cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
Přejmenování vlastností rozhraní příkazového řádku pro cosmosdb_nosql
Po změnách konfigurace popsaných v předchozích částech se teď vlastnosti rozhraní příkazového řádku odpovídajícím způsobem přejmenují jako cosmosdb_nosql-database
a cosmosdb_nosql-container
pro rozhraní NoSQL API služby Cosmos DB.
dab init --database-type "cosmosdb_nosql" --graphql-schema schema.gql --cosmosdb_nosql-database PlaygroundDB --cosmosdb_nosql-container "books" --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;" --host-mode "Development"
Spravovaná identita se teď podporuje s Postgresem
Uživatel teď může alternativně zadat přístupový token v konfiguraci pro ověření pomocí spravované identity. Alternativně teď uživatel nemůže zadat heslo v připojovacím řetězci a modul runtime se pokusí načíst výchozí token spravované identity. Pokud se to nezdaří, pokusí se o připojení bez hesla v připojovacím řetězci.
Podpora ověřování uživatelů pomocí Microsoft Entra ID pro Azure MySQL
Přidání tokenu uživatele jako pole s heslem pro ověřování pomocí modulu plug-in Microsoft Entra ID
Novinky ve verzi 0.3.7
Úplný seznam poznámek k verzi pro tuto verzi je k dispozici na GitHubu: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Zobrazit podporu
Zobrazení se teď podporují jak v REST, tak v GraphQL. Pokud máte zobrazení, můžete ho například dbo.vw_books_details
vystavit pomocí následujícího dab
příkazu:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
Možnost source.key-fields
slouží k určení polí ze zobrazení, která se použijí k jednoznačné identifikaci položky, aby navigace podle primárního klíče bylo možné implementovat i pro zobrazení. Je zodpovědností vývojáře, který konfiguruje DAB, aby povolil nebo zakázal akce (například akci) v závislosti na tom, create
jestli je zobrazení aktualizovatelné nebo ne.
Podpora uložených procedur
Uložené procedury se teď podporují pro požadavky REST. Pokud máte uloženou proceduru, můžete ji například dbo.stp_get_all_cowritten_books_by_author
vystavit pomocí následujícího dab
příkazu:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
Parametr je možné předat v řetězci dotazu adresy URL při volání koncového bodu REST:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Poznámka
Je zodpovědností vývojáře, který konfiguruje DAB, create
aby povolil nebo zakázal akce (například akce), které při volání uložené procedury povolí nebo zamítnou konkrétní příkazy HTTP. Například pro uloženou proceduru použitou v příkladu by vzhledem k tomu, že jejím účelem je vrácení některých dat, dávalo smysl povolit read
pouze akci.
Ověřování Microsoft Entra ID
Ověřování Microsoft Entra ID teď naplno funguje. Další informace najdete v tématu ověřování pomocí Microsoft Entra ID.
Nový zprostředkovatel ověřování simulátoru pro místní ověřování
Pro zjednodušení testování ověřených požadavků při místním vývoji je k dispozici nový simulator
zprostředkovatel ověřování. Zprostředkovatel simulator
je konfigurovatelný zprostředkovatel ověřování, který dává modulu tvůrce rozhraní Data API pokyn, aby všechny požadavky zpracovával jako ověřené. Další podrobnosti najdete tady: Místní ověřování
Podpora filtrování vnořených objektů v dokumentu ve službě Azure Cosmos DB
Se službou Azure Cosmos DB můžete použít relaci objektu nebo pole definovanou ve schématu, která umožňuje provádět operace filtrování u vnořených objektů.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}