Partager via


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.