Neuerungen in Data API Builder Version 1.1
Versionshinweise und Informationen zu den Updates und Verbesserungen in Dab(Data API Builder) Version 1.1.
Wichtig
Dies ist das erste Allgemeinverfügbarkeitsrelease (General Availability, GA) im Data API Builder (DAB).
GitHub-Versionshinweise
Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:
Link | |
---|---|
14.05.2024 – Version 1.1.7 | https://github.com/azure/data-api-builder/releases/tag/v1.1.7 |
.NET 8-Unterstützung
DAB verwendet jetzt multi-targeting, um sowohl .NET 6 als auch .NET 8 LTS-Versionen (Long-Term Support) zu unterstützen.
Weitere Informationen finden Sie unter azure/data-api-builder – .NET multi-framework targeting.
Unterstützung mehrerer Mutationen GraphQL
DAB unterstützt jetzt das Kombinieren mehrerer Mutationsvorgänge in einer einzelnen GraphQL Transaktion. Die aktuelle Unterstützung ist nur auf create
Vorgänge ausgerichtet.
Angenommen, wir haben Book
und Chapter
Entitäten, die miteinander verknüpft sind. Mit mehreren Mutationen können Sie die primäre Buchentität und alle zugehörigen Kapitelentitäten als einzelnen Vorgang erstellen.
mutation {
createBook(
item: {
title: "Data API builder deep-dive"
chapters: [
{ name: "Multiple mutations" }
{ name: "Relationships" }
]
}
) {
title
chapters {
items {
name
}
}
}
}
Dieses Feature ist in unserem Leitfaden für mehrere Mutationen ausführlich dokumentiert.
Weitere Informationen finden Sie unter azure/data-api-builder – Mehrere Mutationen in GraphQL.
Paginierungserweiterungen
DAB verfügt jetzt über eine paginationOptions
Konfigurationseigenschaft, um verschiedene Merkmale der integrierten Paginierungsunterstützung anzupassen. Zu den Untereigenschaften gehören:
Standardwert | BESCHREIBUNG | |
---|---|---|
default-page-size |
100 | Seitengröße, wenn eine Anforderung ohne angegebene Seitengröße erfolgt. |
max-page-size |
100.000 | Seitengröße, wenn eine Anforderung mit -1 für die Seitengröße angegeben wird. |
Weitere Informationen finden Sie unter azure/data-api-builder – Hinzufügen von Paginierungsgrenzwerten.
Integritätsstatus
In früheren Versionen von DAB hat die API eine Zeichenfolge status Meldung von healthy
am Stammendpunkt (/
) zurückgegeben. Nun gibt das Tool ein JSON-Objekt zurück, das den status, die Version und den Anwendungsnamen enthält, der angibt, ob DAB oder die Open-Source-Softwareversion (OSS) gehostet wird.
Beispielsweise würde die Version 0.12.0
des OSS-Containerimages standardmäßig diese status Meldung zurückgeben:
{
"status": "Healthy",
"version": "0.12.0",
"app-name": "dab_oss_0.12.0"
}
Weitere Informationen finden Sie unter azure/data-api-builder – Verbesserte Integritätsendpunktmetadaten.
UNTERSTÜTZUNG mehrerer REST-Datenbanken
In der REST-API werden jetzt mehrere Datenbanken (oder Datenquellen) unterstützt. Der Datenbankname wird basierend auf jeder Entität bestimmt.
Weitere Informationen finden Sie unter azure/data-api-builder – Unterstützung mehrerer Datenbanken in REST.
Azure Cosmos DB für NoSQL-Erweiterungen
Es wurden einige Verbesserungen an der vorhandenen Azure Cosmos DB for NoSQL-Unterstützung in DAB vorgenommen.
Unterstützung für Patchvorgänge
Azure Cosmos DB-Patchvorgänge werden jetzt mithilfe der patch<entity-name>
Mutation unterstützt.
Angenommen, es gibt einen kleinen Container mit verschiedenen Autorenelementen, die von partitioniert sind publisher
. Gehen Sie nun davon aus, dass der Container über das folgende Element und Schema verfügt:
{
"id": "04511cbc-459d-4e39-b957-363f26771fc0",
"firstName": "Jacob",
"lastName": "Hancock",
"publisher": "Contoso Books"
}
type Author @model {
id: ID!
firstName: String!
middleName: String
lastName: String!
publisher: String!
}
Verwenden Sie zum Patchen mit GraphQL die patchAuthor
Mutation, die sowohl den eindeutigen Bezeichner als auch den Partitionsschlüssel angibt:
mutation {
patchAuthor(
item: {
middleName: "A."
}
id: "04511cbc-459d-4e39-b957-363f26771fc0"
_partitionKeyValue: "Contoso Books"
) {
middleName
}
}
Weitere Informationen finden Sie unter azure/data-api-builder – Patchunterstützung.
Sicherheit auf Elementebene
Sicherheit auf Elementebene (Datenbankrichtlinien) wird jetzt mit Azure Cosmos DB for NoSQL unterstützt. Der Datenbankrichtlinienausdruck wird ausgewertet, um zu bestimmen, auf welche Elemente die aktuelle Rolle zugreifen kann.
Beispielsweise würde diese Rollendefinition eine neue Rolle mit dem Namen scoped-reader
definieren, die nur Elemente lesen kann, bei denen der ownerId
dem vorhandenen UserId
aus dem -Objekt des Identitätsanbieters @claims
entspricht.
{
"<entity-name>": {
"permissions": [
{
"role": "scoped-reader",
"actions": [
{
"action": "read",
"policy": {
"database": "@item.ownerId eq @claims.UserId"
}
}
]
}
]
}
}
Weitere Informationen finden Sie unter azure/data-api-builder – Unterstützung der Authentifizierung auf Elementebene mithilfe von Datenbankrichtlinien.
Unterstützung des In-Memory-Caches
Updates vorhandene Azure Cosmos DB for NoSQL-Abfrage-Engine, um den In-Memory-Cache von Azure Cosmos DB zu verwenden.
Weitere Informationen finden Sie unter azure/data-api-builder – In-Memory-Cacheunterstützung.
PostgreSQL-Erweiterungen
Es gibt eine Erweiterung der vorhandenen PostgreSQL-Unterstützung in DAB.
Verketten des Anwendungsnamens mit Verbindungszeichenfolge
DAB ergänzt jetzt den PostgreSQL-Verbindungszeichenfolge mit dem Namen der DAB-Anwendung. Das Tool überprüft, ob im Verbindungszeichenfolge bereits ein Anwendungsname vorhanden ist, und ob:
- Fügt einen neuen DAB-Anwendungsnamen hinzu, wenn kein vorhanden ist, oder
- Fügt den DAB-Anwendungsnamen nach dem vorhandenen Anwendungsnamen mit einem
,
Trennzeichen hinzu.
Weitere Informationen finden Sie unter azure/data-api-builder – Hinzufügen des Anwendungsnamens für PostgreSQL-Verbindungen.