Sdílet prostřednictvím


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í:

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í

  1. Ověřování schématu
  2. Ověření vlastností konfigurace
  3. Ověření oprávnění ke konfiguraci
  4. Ověření připojení k databázi
  5. Ověření metadat entit

Funkce Preview

  • Počáteční podpora DWSQL. #1864
  • Podpora více zdrojů dat #1709

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 falsebudou 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í:

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

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 GraphQL
  • rest.disabled: Globální zakázání koncových bodů REST
  • graphql.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
    }

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 entityobjekty 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 je Production a Development jsou aktualizovány na Error a Debug 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.fieldsjsou , target.fieldsa cardinality . Pokud existuje relace M:N, linking.objectlinking.source.fields, a linking.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ů z http do https .

  • 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.audiencea --auth.issuer. v init 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-typeobjektu .

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
  }
}