Wat is er nieuw in Data API Builder versie 1.1
Releaseopmerkingen en informatie over de updates en verbeteringen in Data API Builder (DAB) versie 1.1.
Belangrijk
Dit is de eerste algemene beschikbaarheidsrelease voor Data API Builder (DAB).
GitHub-releaseopmerkingen
Bekijk deze releasepagina's voor een uitgebreide lijst met alle wijzigingen en verbeteringen:
Koppeling | |
---|---|
2024-05-14 - Versie 1.1.7 | https://github.com/azure/data-api-builder/releases/tag/v1.1.7 |
.NET 8-ondersteuning
DAB maakt nu gebruik van multi-targeting ter ondersteuning van zowel .NET 6- als .NET 8-versies voor langetermijnondersteuning (LTS).
Zie azure/data-api-builder - .NET multi-framework targeting voor meer informatie.
Ondersteuning voor GraphQL-meervoudige mutaties
DAB ondersteunt nu het combineren van meerdere mutatiebewerkingen tot één GraphQL-transactie. De huidige ondersteuning is alleen gericht op create
bewerkingen.
Stel dat we entiteiten en hebben Book
Chapter
die gerelateerd zijn. Met meerdere mutaties kunt u de primaire boekentiteit en alle gerelateerde hoofdstukentiteiten als één bewerking maken.
mutation {
createBook(
item: {
title: "Data API builder deep-dive"
chapters: [
{ name: "Multiple mutations" }
{ name: "Relationships" }
]
}
) {
title
chapters {
items {
name
}
}
}
}
Deze functie wordt uitgebreid beschreven in onze handleiding met meerdere mutaties.
Zie azure/data-api-builder - Meerdere mutaties in GraphQL voor meer informatie.
Pagineringsverbeteringen
DAB heeft nu een paginationOptions
configuratie-eigenschap om verschillende kenmerken van de ingebouwde pagineringsondersteuning aan te passen. De subeigenschappen zijn onder andere:
Standaardwaarde | Beschrijving | |
---|---|---|
default-page-size |
100 | Paginaformaat als een aanvraag wordt gedaan zonder dat het paginaformaat is opgegeven. |
max-page-size |
100.000 | Paginaformaat als er een aanvraag wordt gedaan met -1 opgegeven voor paginaformaat. |
Zie azure/data-api-builder - Pagineringslimieten toevoegen voor meer informatie.
Algemene status
In eerdere versies van DAB retourneert de API een tekenreeksstatusbericht van healthy
op het hoofdeindpunt (/
). Het hulpprogramma retourneert nu een JSON-object met de status, versie en de naam van de toepassing die aangeven of DAB wordt gehost of de oss-versie (opensource-software).
De versie 0.12.0
van de OSS-containerinstallatiekopieën retourneert bijvoorbeeld standaard dit statusbericht:
{
"status": "Healthy",
"version": "0.12.0",
"app-name": "dab_oss_0.12.0"
}
Zie azure/data-api-builder - Verbeterde metagegevens van statuseindpunten voor meer informatie.
Ondersteuning voor MEERDERE REST-databases
In de REST API worden nu meerdere databases (of gegevensbronnen) ondersteund. De databasenaam wordt bepaald op basis van elke entiteit.
Zie azure/data-api-builder - Ondersteuning voor meerdere databases in REST voor meer informatie.
Verbeteringen in Azure Cosmos DB voor NoSQL
Er zijn enkele verbeteringen aangebracht in de bestaande ondersteuning voor Azure Cosmos DB voor NoSQL in DAB.
Ondersteuning voor patchbewerkingen
Azure Cosmos DB-patchbewerkingen worden nu ondersteund met behulp van de patch<entity-name>
mutatie.
Stel dat er een kleine container is met verschillende auteursitems die zijn gepartitioneerd door publisher
. Ga er nu van uit dat de container dit item en schema heeft:
{
"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!
}
Als u een patch wilt uitvoeren met GraphQL, gebruikt u de patchAuthor
mutatie die zowel de unieke id als de partitiesleutel opgeeft:
mutation {
patchAuthor(
item: {
middleName: "A."
}
id: "04511cbc-459d-4e39-b957-363f26771fc0"
_partitionKeyValue: "Contoso Books"
) {
middleName
}
}
Zie azure/data-api-builder - Patch-ondersteuning voor meer informatie.
Beveiliging op itemniveau
Beveiliging op itemniveau (databasebeleid) wordt nu ondersteund met Azure Cosmos DB voor NoSQL. De expressie van het databasebeleid wordt geëvalueerd om te bepalen tot welke items de huidige rol toegang heeft.
Deze roldefinitie definieert bijvoorbeeld een nieuwe rol met de naam scoped-reader
die alleen items kan lezen waarvan de ownerId
gelijk is aan de bestaande UserId
van het object van de id-provider @claims
.
{
"<entity-name>": {
"permissions": [
{
"role": "scoped-reader",
"actions": [
{
"action": "read",
"policy": {
"database": "@item.ownerId eq @claims.UserId"
}
}
]
}
]
}
}
Zie azure/data-api-builder - Ondersteuning voor verificatie op itemniveau met behulp van databasebeleid voor meer informatie.
Ondersteuning voor cache in het geheugen
Updates bestaande Azure Cosmos DB for NoSQL-query-engine om de in-memory cache van Azure Cosmos DB te gebruiken.
Zie azure/data-api-builder - Ondersteuning voor cache in het geheugen voor meer informatie.
PostgreSQL-verbeteringen
Er is een verbetering van de bestaande PostgreSQL-ondersteuning in DAB.
Toepassingsnaam samenvoegen met verbindingsreeks
DAB vult de PostgreSQL-verbindingsreeks nu aan met de naam van de DAB-toepassing. Het hulpprogramma controleert of er al een toepassingsnaam bestaat in de verbindingsreeks en een van de volgende opties:
- Voegt een nieuwe DAB-toepassingsnaam toe als deze niet bestaat of
- Voegt de naam van de DAB-toepassing toe na de naam van de bestaande toepassing met een
,
scheidingsteken.
Zie azure/data-api-builder - Toepassingsnaam toevoegen voor PostgreSQL-verbindingen voor meer informatie.