Nouveautés du Générateur d’API de données version 1.1
Notes de publication et informations sur les mises à jour et les améliorations dans data API Builder (DAB) version 1.1.
Important
Il s’agit de la première version en disponibilité générale sur le générateur d’API de données (DAB).
Notes de publication de GitHub
Consultez ces pages de publication pour obtenir une liste complète de toutes les modifications et améliorations :
Lien | |
---|---|
2024-05-14 - Version 1.1.7 | https://github.com/azure/data-api-builder/releases/tag/v1.1.7 |
Prise en charge de .NET 8
DAB utilise désormais le multi-ciblage pour prendre en charge les versions de support à long terme (LTS) de .NET 6 et .NET 8.
Pour plus d’informations, consultez azure/data-api-builder - Ciblage multi-framework .NET.
GraphQL de multiples mutations
DAB prend désormais en charge la combinaison de plusieurs opérations de mutation en une seule transaction GraphQL. La prise en charge actuelle est limitée aux create
opérations uniquement.
Par exemple, supposons que nous avons des Book
entités et Chapter
qui sont liées. Avec plusieurs mutations, vous pouvez créer l’entité de livre primaire et toutes les entités de chapitre associées en une seule opération.
mutation {
createBook(
item: {
title: "Data API builder deep-dive"
chapters: [
{ name: "Multiple mutations" }
{ name: "Relationships" }
]
}
) {
title
chapters {
items {
name
}
}
}
}
Cette fonctionnalité est documentée en détail dans notre guide sur les mutations multiples.
Pour plus d’informations, consultez azure/data-api-builder - Mutations multiples dans GraphQL.
Améliorations de la pagination
DAB dispose désormais d’une paginationOptions
propriété de configuration permettant d’ajuster diverses caractéristiques de la prise en charge de la pagination intégrée. Les sous-propriétés sont les suivantes :
Valeur par défaut | Description | |
---|---|---|
default-page-size |
100 | Taille de page si une requête est effectuée sans taille de page spécifiée. |
max-page-size |
100 000 | Taille de page si une requête est effectuée avec -1 spécifiée pour la taille de page. |
Pour plus d’informations, consultez azure/data-api-builder - Ajouter des limites de pagination.
État d’intégrité
Dans les versions antérieures de DAB, l’API renvoyait une chaîne status message de au point de healthy
terminaison racine (/
). À présent, l’outil retourne un objet JSON contenant le status, la version et le nom de l’application indiquant si DAB est hébergé ou la version de logiciel open source (OSS).
Par exemple, la version 0.12.0
de l’image conteneur OSS retourne ce message status par défaut :
{
"status": "Healthy",
"version": "0.12.0",
"app-name": "dab_oss_0.12.0"
}
Pour plus d’informations, consultez azure/data-api-builder - Métadonnées de point de terminaison d’intégrité améliorées.
Prise en charge de plusieurs bases de données REST
Dans l’API REST, plusieurs bases de données (ou sources de données) sont désormais prises en charge. Le nom de la base de données est déterminé en fonction de chaque entité.
Pour plus d’informations, consultez azure/data-api-builder - Prise en charge de plusieurs bases de données dans REST.
Améliorations d’Azure Cosmos DB for NoSQL
Quelques améliorations ont été apportées à la prise en charge existante d’Azure Cosmos DB for NoSQL dans DAB.
Prise en charge des opérations de correctif
Les opérations correctives Azure Cosmos DB sont désormais prises en charge à l’aide de la patch<entity-name>
mutation.
Par exemple, supposons qu’il existe un petit conteneur avec différents éléments d’auteur partitionnés par publisher
. Supposons maintenant que le conteneur possède cet élément et ce schéma :
{
"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!
}
Pour effectuer un correctif à l’aide de GraphQL, utilisez la patchAuthor
mutation en spécifiant à la fois l’identificateur unique et la clé de partition :
mutation {
patchAuthor(
item: {
middleName: "A."
}
id: "04511cbc-459d-4e39-b957-363f26771fc0"
_partitionKeyValue: "Contoso Books"
) {
middleName
}
}
Pour plus d’informations, consultez azure/data-api-builder - Prise en charge des correctifs.
Sécurité au niveau de l’élément
La sécurité au niveau de l’élément (stratégies de base de données) est désormais prise en charge avec Azure Cosmos DB for NoSQL. L’expression de stratégie de base de données est évaluée pour déterminer les éléments auxquels le rôle actuel peut accéder.
Par exemple, cette définition de rôle définirait un nouveau rôle nommé scoped-reader
qui peut uniquement lire les éléments où est ownerId
équivalent à l’existant UserId
à partir de l’objet du fournisseur d’identité @claims
.
{
"<entity-name>": {
"permissions": [
{
"role": "scoped-reader",
"actions": [
{
"action": "read",
"policy": {
"database": "@item.ownerId eq @claims.UserId"
}
}
]
}
]
}
}
Pour plus d’informations, consultez azure/data-api-builder - Prise en charge de l’authentification au niveau de l’élément à l’aide d’une stratégie de base de données.
Prise en charge du cache en mémoire
Mises à jour moteur de requête Azure Cosmos DB for NoSQL existant pour utiliser le cache en mémoire d’Azure Cosmos DB.
Pour plus d’informations, consultez azure/data-api-builder - Prise en charge du cache en mémoire.
Améliorations apportées à PostgreSQL
Il existe une amélioration de la prise en charge existante de PostgreSQL dans DAB.
Concaténer le nom de l’application à chaîne de connexion
DAB complète désormais le chaîne de connexion PostgreSQL avec le nom de l’application DAB. L’outil vérifie si un nom d’application existe déjà dans le chaîne de connexion, et soit :
- Ajoute un nouveau nom d’application DAB s’il n’en existe pas ou
- Ajoute le nom de l’application DAB après le nom d’application existant avec un
,
séparateur.
Pour plus d’informations, consultez azure/data-api-builder - Ajouter un nom d’application pour les connexions PostgreSQL.