Neuerungen in Version 0.11 und früher
Versionshinweise und Informationen zu allen Updates und Verbesserungen in Data API Builder Version 0.11 und früher.
Neuerungen in Version 0.11
Versionshinweise und Informationen zu den Updates und Verbesserungen in Data API Builder Version 0.10.
GraphQL-Unterstützung für SQL Data Warehouse
SQL Data Warehouse unterstützt jetzt GraphQL-Endpunkte.
Erweiterte Azure Cosmos DB for NoSQL-Filterung
Azure Cosmos DB for NoSQL unterstützt jetzt geschachtelte Filter, ID-Variablen und Zeichenfolgenarraysuchen mit dem contains
Operator.
Aktivieren der Anwendungsdatensammlung über die Befehlszeilenschnittstelle
Sie können jetzt die DAB-Befehlszeilenschnittstelle (CLI) verwenden, um die Datensammlung mit Application Insights zu aktivieren.
Neuerungen in Version 0.10
Versionshinweise und Informationen zu den Updates und Verbesserungen in Data API Builder Version 0.10.
Wir konzentrieren uns auf Stabilität, wenn wir uns der allgemeinen Verfügbarkeit nähern. In diesem Artikel werden zwar nicht alle Anstrengungen in Codequalität und Engine-Stabilität beschrieben, aber in dieser Liste werden wichtige Updates hervorgehoben.
GitHub-Versionshinweise
Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:
- 06.02.2024 – Version 0.10.23
- 31.01.2024 – Version 0.10.21
- 07.12.2023 – Version 0.10.11
In-Memory-Caching
Version 0.10 führt die Speicherzwischenspeicherung für REST- und GraphQL-Endpunkte ein. Dieses Feature, das für die interne Zwischenspeicherung entwickelt wurde, legt die Grundlage für die zukünftige verteilte Zwischenspeicherung. Zwischenspeicherung im Arbeitsspeicher reduziert die Datenbanklast durch wiederholte Abfragen.
Zwischenspeicherungsszenarien
- Reduzieren der Datenbanklast: Im Cache werden Ergebnisse teurer Abfragen gespeichert, sodass keine wiederholten Datenbankaufrufe erforderlich sind.
- Verbessern der API-Skalierbarkeit: Zwischenspeicherung unterstützt häufigere API-Aufrufe ohne Erhöhung von Datenbankanforderungen, wodurch die Funktionen Ihrer API erheblich skaliert werden.
Konfigurationsänderungen
Die Zwischenspeicherungseinstellungen sind im runtime
Abschnitt und für jede Entität verfügbar und bieten eine präzise Steuerung.
Laufzeiteinstellungen:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Die Zwischenspeicherung ist standardmäßig deaktiviert.
- Die Standardzeit (Time-to-Live, TTL) beträgt 5 Sekunden.
Entitätseinstellungen:
{
"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
}
}
}
Konfigurationsüberprüfung in der CLI
Die CLI unterstützt jetzt die dab validate
Überprüfung von Konfigurationsdateien auf Fehler oder Inkonsistenzen und verbessert den Entwicklungsworkflow.
Validierungsschritte
- Schemavalidierung
- Überprüfung der Konfigurationseigenschaften
- Überprüfung der Konfigurationsberechtigung
- Datenbankverbindungsüberprüfung
- Überprüfung von Entitätenmetadaten
Previewfunktionen
Neuerungen in Version 0.9
Hier finden Sie die Details zu den wichtigsten Änderungen und Verbesserungen in Data API Builder 0.9.
GitHub-Versionshinweise
Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:
Aktivieren von Application Insights beim Selbsthosting von DAB
Protokolle können jetzt an Application Insights gestreamt werden, um die Überwachung und das Debuggen zu verbessern, insbesondere wenn der Daten-API-Generator in Azure bereitgestellt wird. Der Konfigurationsdatei kann ein neuer telemetry
Abschnitt hinzugefügt werden, um die Integration mit Application Insights zu aktivieren und zu konfigurieren:
"telemetry": {
"application-insights": {
"enabled": true, // To enable/disable application insights telemetry
"connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
}
}
Lesen Sie alle Details auf der Dokumentationsseite verwenden von Application Insights .
Unterstützung für das Ignorieren fremder Felder im REST-Anforderungstext
Mit der neuen request-body-strict
Option können Sie jetzt entscheiden, ob ein zusätzliches Feld in der REST-Nutzlast einen Fehler generiert (Standardverhalten, abwärtskompatibel) oder ob die zusätzlichen Felder unbeaufsichtigt ignoriert werden.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Durch Festlegen der request-body-strict
Option auf false
werden Felder, die keine Zuordnung zum zugehörigen Datenbankobjekt aufweisen, ignoriert, ohne dass ein Fehler generiert wird.
Hinzufügen des Anwendungsnamens für mssql
Verbindungen
Der Daten-API-Generator fügt jetzt den Wert dab-<version>
als Application Name
Eigenschaft in die Verbindungszeichenfolge ein, nur für mssql
Datenbanktypen, wodurch die Identifizierung der Verbindungen auf dem Datenbankserver erleichtert wird. Wenn Application Name
bereits in der Verbindungszeichenfolge vorhanden ist, wird ihr die Version des Daten-API-Generators angefügt.
Unterstützung time
des Datentyps in mssql
time
Der Datentyp wird jetzt in mssql
Datenbanken unterstützt.
Mutationen in der Tabelle mit Triggern für mssql
Mutationen werden jetzt in Tabellen mit Triggern für mssql
Datenbanken vollständig unterstützt.
Verhindern des Aktualisierens/Einfügens schreibgeschützter Felder in einer Tabelle nach Benutzer
Erkennen Sie automatisch schreibgeschützte Felder in der Datenbank, und verhindern Sie das Aktualisieren/Einfügen dieser Felder durch den Benutzer.
Neuerungen in Version 0.8
Hier finden Sie die Details zu den wichtigsten Änderungen und Verbesserungen in Data API Builder 0.8.
GitHub-Versionshinweise
Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:
- 0.8.52: GitHub-Releaseseite
- 0.8.51: GitHub-Releaseseite
- 0.8.50: GitHub-Releaseseite
- 0.8.49: GitHub-Releaseseite
Unterstützung für ENV-Datei hinzugefügt
Umgebungsvariablen schützen Geheimnisse vor der Nur-Text-Belichtung und ermöglichen den Wertaustausch in verschiedenen Einstellungen. Diese Variablen müssen jedoch entweder im Benutzer- oder Computerbereich festgelegt werden, was zu projektübergreifender Variable "Bleeding" führen kann, wenn Variablennamen dupliziert werden. Die bessere Alternative sind Umgebungsdateien. Weitere Informationen finden Sie unter Umgebungsdateien im Daten-API-Generator – Blog.
Neuerungen in Version 0.7.6
In diesem Artikel werden die Versionshinweise für die Version 0.7.6 beschrieben.
GitHub-Pull Requests
- Problem mit Adressfilterzugriffsverweigerung für Cosmos
- Fehlerbehebung für die Azure Cosmos DB-Feldauthentifizierung, wenn graphql "true", include "*" ist
Anfängliche Unterstützung für die Dokumenterstellung von OpenAPI v3-0-1
Der Daten-API-Generator unterstützt den OpenAPI-Standard zum Generieren und Verfügbarmachen von Beschreibungsdokumenten, die nützliche Informationen zum Dienst enthalten. Diese Dokumentation wird aus der Laufzeitkonfigurationsdatei und den Metadaten für jedes Datenbankobjekt erstellt. Diese Objekte sind einer REST-aktivierten Entität zugeordnet, die in derselben Konfigurationsdatei definiert ist. Sie werden dann über eine Benutzeroberfläche verfügbar gemacht und als serialisierte Datei verfügbar gemacht.
Weitere Informationen zu den Besonderheiten des OpenAPI- und Daten-API-Generators finden Sie unter OpenAPI.
Zusammenführung von Konfigurationsdateien zulassen
Fügt die Möglichkeit hinzu, zwei Konfigurationsdateien automatisch zusammenzuführen.
Es ist möglich, mehrere Paare von baseline- und umgebungsspezifischen Konfigurationsdateien zu verwalten, um die Verwaltung der umgebungsspezifischen Einstellungen zu vereinfachen. Beispielsweise ist es möglich, separate Konfigurationen für Entwicklung und Produktion zu verwalten. Dieser Schritt umfasst eine Basiskonfigurationsdatei, die alle allgemeinen Einstellungen zwischen den verschiedenen Umgebungen enthält. Durch Festlegen der DAB_ENVIRONMENT
Variablen kann dann gesteuert werden, welche Konfigurationsdateien zur Nutzung durch den Daten-API-Generator zusammengeführt werden sollen.
Weitere Informationen finden Sie unter CLI-Referenz.
Ausführen von GraphQL- und REST-Mutationen in einer Transaktion
Der Daten-API-Generator erstellt Datenbanktransaktionen, um bestimmte Typen von GraphQL- und REST-Anforderungen auszuführen.
Es gibt viele Anforderungen, bei denen mehrere Datenbankabfragen ausgeführt werden müssen. Um z. B. die Ergebnisse eines Updates zurückzugeben, muss zuerst eine Abfrage für das Update durchgeführt werden, dann müssen die neuen Werte gelesen werden, bevor sie zurückgegeben werden. Wenn für eine Anforderung mehrere Datenbankabfragen ausgeführt werden müssen, führt der Daten-API-Generator diese Datenbankabfragen jetzt innerhalb einer einzelnen Transaktion aus.
Weitere Informationen zu dieser Funktion finden Sie im Kontext von REST in der REST-Dokumentation und zu GraphQL in der GraphQL-Dokumentation.
Neuerungen in Version 0.6.14
In diesem Artikel wird der Patch für das Release vom März 2023 für Den Daten-API-Generator für Azure-Datenbanken beschrieben.
Fehlerbehebungen
- Beheben sie das Problem mit dem Abfragefilterzugriff verweigert für Cosmos.
- Cosmos DB unterstützt derzeit keine Autorisierung auf Feldebene. Um zu vermeiden, dass die Benutzer versehentlich die Berechtigungen in der
field
Laufzeitkonfiguration übergeben, haben wir eine Überprüfung hinzugefügt.
Neuerungen in Version 0.6.13
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Neuer CLI-Befehl zum Exportieren des GraphQL-Schemas
Eine neue Option zum Exportieren des GraphQL-Schemas wird hinzugefügt. Dadurch wird der DAB-Server gestartet und dann abfragt, um das Schema abzurufen, bevor es an den angegebenen Speicherort geschrieben wird.
dab export --graphql -c dab-config.development.json -o ./schemas
Dieser Befehl generiert die GraphQL-Schemadatei im Verzeichnis ./schemas. Der Pfad zur Konfigurationsdatei ist ein optionaler Parameter, der standardmäßig auf "dab-config.json" festgelegt ist, es sei denn, "dab-config".<>DAB_ENVIRONMENT.json" ist vorhanden, wobei DAB_ENVIRONMENT eine Umgebungsvariable ist.
Datenbankrichtlinienunterstützung für die Erstellungsaktion für MsSql
Datenbankrichtlinien werden jetzt für alle CRUD-Vorgänge (Create, Read, Update, Delete) für MsSql unterstützt. Beispiel:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
Die vorherige Konfiguration für Revenue
entität gibt an, dass der Benutzer, der einen Einfügevorgang mit der Rolle Authenticated
ausführt, keinen Datensatz mit einem Umsatz erstellen darf, der kleiner oder gleich Null ist.
Möglichkeit zum Konfigurieren des GraphQL-Pfads und zum globalen Deaktivieren von REST- und GraphQL-Endpunkten über die CLI
Wir unterstützen jetzt drei weitere Optionen für den init
Befehl:
graphql.path
: So stellen Sie einen benutzerdefinierten GraphQL-Pfad bereitrest.disabled
: So deaktivieren Sie REST-Endpunkte globalgraphql.disabled
: So deaktivieren Sie GraphQL-Endpunkte global
Beispielsweise würde ein init
Befehl eine Konfigurationsdatei mit einem Laufzeitabschnitt generieren:
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"
},
}
Schlüsselfelder, die zum Hinzufügen und Aktualisieren von Ansichten in der CLI erforderlich sind
Es ist jetzt obligatorisch, dass der Benutzer die Schlüsselfelder (die als Primärschlüssel verwendet werden sollen) über die verfügbar gemachte Option source.key-fields
angeben, wenn der Konfiguration eine neue Datenbankansicht (über dab add
) über die CLI hinzugefügt wird. Außerdem ist es bei jeder Aktualisierung von Elementen in der Konfiguration der Ansicht (über dab update
) in der Konfigurationsdatei über die CLI erforderlich, wenn das Update etwas ändert, das sich auf die Definition der Ansicht in der zugrunde liegenden Datenbank bezieht (z. B. Quelltyp, Schlüsselfelder), die Schlüsselfelder auch im Updatebefehl anzugeben.
Wir unterstützen jedoch weiterhin Ansichten, ohne explizite Primärschlüssel in der Konfiguration angegeben zu haben, aber die Konfiguration für solche Ansichten muss direkt in der Konfigurationsdatei geschrieben werden.
Beispielsweise wird ein dab add
Befehl verwendet, um eine Ansicht hinzuzufügen:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Mit diesem Befehl wird die Konfiguration für books_view
die Entität generiert, die wie im folgenden Beispiel aussieht:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Ersetzen des Azure-Speicherlinks durch GitHub-Links
Da DAB jetzt Open Source ist, müssen wir die Artefakte nicht aus dem Speicherkonto herunterladen. Stattdessen können wir sie direkt von GitHub herunterladen. Daher werden die Links entsprechend aktualisiert.
Neuerungen in Version 0.5.34
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Berücksichtigen des REST- und GraphQL-fähigen Flags auf Laufzeitebene
Es wird eine neue Option hinzugefügt, die das Aktivieren oder Deaktivieren von REST-/GraphQL-Anforderungen für alle Entitäten auf Laufzeitebene ermöglicht. Wenn sie global deaktiviert ist, kann unabhängig von den einzelnen Entitätseinstellungen auf keine Entitäten über REST- oder GraphQL-Anforderungen zugegriffen werden. Wenn diese Option global aktiviert ist, kann standardmäßig auf einzelne Entitäten zugegriffen werden, es sei denn, die Einstellungen auf Entitätsebene werden explizit deaktiviert.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
Korrelations-ID in Anforderungsprotokollen
Um das Debuggen zu erleichtern, fügen wir eine Korrelations-ID an alle Protokolle an, die während einer Anforderung generiert werden. Da viele Anforderungen gestellt werden können, ist es wichtig, die Protokolle für eine bestimmte Anforderung zu identifizieren, um den Debugprozess zu unterstützen.
Unterstützung von Wildcard-Vorgängen für gespeicherte Prozeduren in Engine und CLI
Für gespeicherte Prozeduren können Rollen jetzt mit der Wildcardaktion *
konfiguriert werden, sie wird jedoch nur auf die execute
Aktion erweitert.
Neuerungen in Version 0.5.32
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Möglichkeit zum Anpassen des Restpfads über die CLI
Im Befehl wird eine neue Option --rest.path
eingeführt init
, um den Pfad für REST-APIs anzupassen.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Dieser Befehl konfiguriert die REST-Endpunkte mit dem Präfix rest-api
. Der vollständige Pfad für die REST-Endpunkte lautet https://<dab-server>/rest-api/<entity-name>
Wenn --rest.path
die Option nicht verwendet wird, werden die REST-Endpunkte mit dem Standardpräfix api
konfiguriert. Der vollständige Pfad lautet in diesem Fall https://<dab-server>/api/<entity-name>
Containerimage des Daten-API-Generators in MAR
Die offiziellen Docker-Images für den Daten-API-Generator für Azure-Datenbanken sind jetzt in Microsoft Artifact Registry verfügbar.
Anweisungen zur Verwendung der veröffentlichten Images finden Sie unter Microsoft Container Registry – Daten-API-Generator.
Unterstützung für GraphQL-Fragmente
Fragmente sind wiederverwendbare Teile einer graphQL-Abfrage. In Szenarien, in denen dieselben Felder in verschiedenen Abfragen abgefragt werden müssen, können die wiederholten Felder in einer einzigen wiederverwendbaren Komponente namens Fragment konsolidiert werden.
Weitere Informationen zu Fragmenten finden Sie unter GraphQL-Abfragen.
Als Nächstes wird ein Fragment namens description
vom Typ Character
definiert:
fragment description on Character {
name
homePlanet
primaryFunction
}
Eine GraphQL-Abfrage, die das definierte Fragment verwendet, kann wie hier dargestellt erstellt werden:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Für die vorherige Abfrage enthält das Ergebnis die folgenden Felder:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
Aktivieren von BinSkim und Korrigieren von Policheck-Warnungen
BinSkim ist ein einfacher PE-Scanner (Portable Executable, portierbar ausführbar), mit dem Compiler- und Linker-Einstellungen sowie andere sicherheitsrelevante binäre Merkmale überprüft werden. Eine Pipelineaufgabe in der static-tools
Pipeline wird hinzugefügt, um BinSkim-Überprüfungen bei jeder Pipelineausführung auszuführen. Das PoliCheck-System besteht aus einer Reihe von Tools und Daten, die dazu beiträgt, die Anforderungen der Text- und Codeüberprüfung als Teil der globalen Bereitschaftsrichtlinie einzuhalten. Die von Policheck-Überprüfungen generierten Warnungen sind mit sensiblen Begriffen kompatibel.
Neuerungen in Version 0.5.0
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Öffentliches JSON-Schema
Das öffentliche JSON-Schema bietet Unterstützung für "IntelliSense", wenn Sie eine IDE wie Visual Studio Code verwenden, die JSON-Schemas unterstützt. Die basic-empty-dab-config.json
Datei im samples
Ordner verfügt über einen Beispielstartpunkt beim manuellen Erstellen der dab-config.json
Datei.
Öffentliches Microsoft.DataApiBuilder
NuGet
Microsoft.DataApiBuilder
ist jetzt als öffentliches NuGet-Paket hier verfügbar, um die Installation mit dem dotnet-Tool wie folgt zu vereinfachen:
dotnet tool install --global Microsoft.DataApiBuilder
Neue execute
Aktion für gespeicherte Prozeduren in Azure SQL
Eine neue execute
Aktion wird nur dann als die einzige zulässige Aktion im permissions
Abschnitt der Konfigurationsdatei eingeführt, wenn ein Quelltyp eine Entität von stored-procedure
zurückgibt. Standardmäßig ist für solche Entitäten nur POST
die Methode zulässig, und nur der GraphQL-Vorgang mutation
wird mit dem Präfix execute
konfiguriert, das ihrem Namen hinzugefügt wurde. Durch explizite Angabe des zulässigen methods
im rest
Abschnitt der Konfigurationsdatei wird dieses Verhalten außer Kraft gesetzt. Ebenso kann für GraphQL die operation
im graphql
Abschnitt überschrieben werden, um stattdessen zu sein query
. Weitere Informationen finden Sie unter Sichten und gespeicherte Prozeduren.
Neuer mappings
Abschnitt
mappings
Im Abschnitt unter werden entity
die Zuordnungen zwischen Datenbankobjektfeldnamen und den entsprechenden verfügbar gemachten Feldnamen sowohl für GraphQL- als auch für REST-Endpunkte definiert.
Das Format lautet:
<database_field>: <entity_field>
Beispiel:
"mappings":{
"title": "descriptions",
"completed": "done"
}
Das title
Feld im verknüpften Datenbankobjekt wird dem Feld im GraphQL-Typ oder in der REST-Anforderungs- und Antwortnutzlast zugeordnet description
.
Unterstützung für den Sitzungskontext in Azure SQL
Um eine zusätzliche Sicherheitsebene (z. B. Row Level Security, RLS) zu aktivieren, unterstützt DAB jetzt das Senden von Daten an die zugrunde liegende Sql Server-Datenbank über SESSION_CONTEXT. Weitere Informationen finden Sie in diesem ausführlichen Dokument unter SESSION_CONTEXT: Runtime-zu-Datenbank-Autorisierung.
Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in PostgreSQL
Mit PostgreSQL können Sie jetzt die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte wie Azure SQL ausgeführt werden können.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Unterstützung der Skalarliste in Cosmos DB NoSQL
Die Möglichkeit zum Abfragen List
von Skalaren wurde jetzt für Cosmos DB hinzugefügt.
Betrachten Sie diese Typdefinition.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Es ist jetzt möglich, eine Abfrage auszuführen, die eine Liste abruft, z. B.
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Erweiterte Protokollierungsunterstützung mithilfe der Protokollebene
- Die Standardprotokollebenen für die Engine, wenn
host.mode
bzwDevelopment
. auf bzwDebug
. aktualisiertError
wirdProduction
. - Während des Startvorgangs des Moduls werden für jede Spalte einer Entität Informationen wie verfügbar gemachte Feldnamen und der Primärschlüssel protokolliert. Dieses Verhalten tritt auch beim Typ auf, wenn die Feldzuordnung automatisch generiert wird.
- Im lokalen Ausführungsszenario werden alle Abfragen, die während des Startvorgangs des Moduls generiert und ausgeführt werden, auf Ebene
Debug
protokolliert. - Für jede Entität werden Beziehungsfelder wie
source.fields
,target.fields
undcardinality
protokolliert. Wenn es viele Beziehungen gibt,linking.object
linking.source.fields
werden , undlinking.target.fields
aus der Datenbank (oder aus der Konfigurationsdatei) abgeleitete Beziehungen protokolliert. - Für jede eingehende Anforderung werden die Rolle und der Authentifizierungsstatus der Anforderung protokolliert.
- In der CLI wird die
Microsoft.DataAPIBuilder
Version zusammen mit den Protokollen protokolliert, die der Ausführung des jeweiligen Befehls zugeordnet sind.
CLI aktualisiert
--no-https-redirect
-Option wird demstart
Befehl hinzugefügt. Mit dieser Option kann die automatische Umleitung von Anforderungen vonhttp
zuhttps
verhindert werden.In MsSql kann der Sitzungskontext mithilfe
--set-session-context true
desinit
Befehls aktiviert werden. In diesem Beispiel wird ein Beispielbefehl gezeigt:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Authentifizierungsdetails wie Anbieter, Zielgruppe und Aussteller können mit den Optionen
--auth.provider
,--auth.audience
und--auth.issuer.
iminit
Befehl konfiguriert werden. In diesem Beispiel wird ein Beispielbefehl gezeigt:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Benutzerfreundliche Fehlermeldungen, wenn der Entitätsname nicht angegeben wird.
Neuerungen in Version 0.4.11
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Aktualisiertes JSON-Schema für data-source
den Abschnitt
Der data-source
Abschnitt in der Konfigurationsdatei wird so aktualisiert, dass er für alle unterstützten Datenbanken konsistent ist, aber dennoch für jede Datenbank benutzerdefinierte Konfigurationen zulassen kann. Ein neuer Abschnitt options
wird eingeführt, um alle Eigenschaften zu gruppieren, die für eine Datenbank spezifisch sind. Beispiel:
{
"$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;"
}
}
Die im Abschnitt verfügbaren options
Elemente hängen vom ausgewählten ab database-type
.
Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in Azure SQL und SQL Server
Mit Azure SQL und SQL Server können Sie die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte ausgeführt werden können.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Verbesserte Unterstützung gespeicherter Prozeduren
Vollständige Unterstützung für gespeicherte Prozeduren in REST und GraphQL. Gespeicherte Prozedur mit Parametern jetzt zu 100 % unterstützt. In der Dokumentation zu gespeicherten Prozeduren erfahren Sie, wie Sie den Daten-API-Generator mit gespeicherten Prozeduren verwenden.
Neuer database-type
Wert für Cosmos DB umbenannt
Wir haben Unterstützung für die PostgreSQL-API mit Cosmos DB hinzugefügt. Bei einem konsolidierten data-source
Abschnitt gibt das Attribut database-type
den Typ der Datenbank an. Da Cosmos DB mehrere APIs unterstützt, sind cosmosdb_nosql
die derzeit unterstützten Datenbanktypen und cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
Umbenennen von CLI-Eigenschaften für cosmosdb_nosql
Nach den in den vorherigen Abschnitten beschriebenen Konfigurationsänderungen werden CLI-Eigenschaften nun entsprechend als cosmosdb_nosql-database
und cosmosdb_nosql-container
für Cosmos DB NoSQL-API umbenannt.
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"
Verwaltete Identität wird jetzt mit Postgres unterstützt
Nun kann der Benutzer alternativ das Zugriffstoken in der Konfiguration angeben, um sich mit einer verwalteten Identität zu authentifizieren. Alternativ kann der Benutzer jetzt einfach nicht das Kennwort in der Verbindungszeichenfolge angeben, und die Runtime versucht, das Standardtoken für die verwaltete Identität abzurufen. Wenn dies fehlschlägt, wird die Verbindung ohne Kennwort in der Verbindungszeichenfolge versucht.
Unterstützung der Microsoft Entra ID-Benutzerauthentifizierung für Azure MySQL
Benutzertoken als Kennwortfeld hinzugefügt, um sich mit MySQL mit dem Microsoft Entra ID-Plug-In zu authentifizieren.
Neuerungen in Version 0.3.7
Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Support anzeigen
Ansichten werden jetzt sowohl in REST als auch in GraphQL unterstützt. Wenn Sie über eine Ansicht verfügen, kann sie beispielsweise dbo.vw_books_details
mit dem folgenden dab
Befehl verfügbar gemacht werden:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
Die source.key-fields
Option wird verwendet, um anzugeben, welche Felder aus der Ansicht verwendet werden, um ein Element eindeutig zu identifizieren, sodass die Navigation nach Primärschlüssel auch für Ansichten implementiert werden kann. Es liegt in der Verantwortung des Entwicklers, der DAB konfiguriert, um Aktionen (z. B. die create
Aktion) zu aktivieren oder zu deaktivieren, je nachdem, ob die Ansicht aktualisierbar ist oder nicht.
Unterstützung gespeicherter Prozeduren
Gespeicherte Prozeduren werden jetzt für REST-Anforderungen unterstützt. Wenn Sie über eine gespeicherte Prozedur verfügen, kann sie beispielsweise dbo.stp_get_all_cowritten_books_by_author
mit dem folgenden dab
Befehl verfügbar gemacht werden:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
Der Parameter kann in der URL-Abfragezeichenfolge übergeben werden, wenn der REST-Endpunkt aufgerufen wird:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Hinweis
Es liegt in der Verantwortung des Entwicklers, der DAB konfiguriert, um Aktionen (z. B. die create
Aktion) zu aktivieren oder zu deaktivieren, um bestimmte HTTP-Verben beim Aufrufen der gespeicherten Prozedur zuzulassen oder zu verweigern. Für die gespeicherte Prozedur, die im Beispiel verwendet wird, wäre es beispielsweise sinnvoll, nur die read
Aktion zuzulassen, da ihr Zweck darin besteht, einige Daten zurückzugeben.
Microsoft Entra ID-Authentifizierung
Die Microsoft Entra ID-Authentifizierung funktioniert jetzt vollständig. Weitere Informationen finden Sie unter Authentifizierung mit der Microsoft Entra-ID.
Neuer Simulatorauthentifizierungsanbieter für die lokale Authentifizierung
Um das Testen authentifizierter Anforderungen bei der lokalen Entwicklung zu vereinfachen, ist ein neuer simulator
Authentifizierungsanbieter verfügbar. Der Anbieter simulator
ist ein konfigurierbarer Authentifizierungsanbieter, der die Daten-API-Generator-Engine anweist, alle Anforderungen als authentifiziert zu behandeln. Weitere Details finden Sie hier: Lokale Authentifizierung
Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in Azure Cosmos DB
Mit Azure Cosmos DB können Sie die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte ausgeführt werden können.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}