Delen via


Wat is er nieuw in Data API Builder versie 1.1 (mei 2024)

Releaseopmerkingen en informatie over de updates en verbeteringen in DAB (Data API Builder) versie 1.1.

Belangrijk

Deze release is de eerste algemene beschikbaarheidsrelease (GA) op Data API Builder (DAB).

Opmerkingen bij de release op GitHub

Bekijk deze releasepagina's voor een uitgebreide lijst met alle wijzigingen en verbeteringen:

Verbinden
2024-05-14 - versie 1.1.7 https://github.com/azure/data-api-builder/releases/tag/v1.1.7

Ondersteuning voor .NET 8

DAB maakt nu gebruik van meerdere targetings 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.

GraphQL meerdere mutaties ondersteunen

DAB ondersteunt nu het combineren van meerdere mutatiebewerkingen tot één GraphQL-transactie. De huidige ondersteuning is alleen beperkt tot create bewerkingen.

Stel dat we de entiteiten Book en Chapter hebben 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 gids voor meervoudige mutaties.

Zie azure/data-api-builder - Multiple mutaties in GraphQL voor meer informatie.

Verbeteringen aan paginering

DAB heeft nu een paginationOptions configuratie-eigenschap om verschillende kenmerken van de ingebouwde pagineringsondersteuning aan te passen. De subproperties zijn onder andere:

Standaardwaarde Beschrijving
default-page-size 100 Paginaformaat als er een aanvraag wordt gedaan zonder dat er een paginaformaat is opgegeven.
max-page-size 100,000 Paginaformaat wanneer een aanvraag wordt ingediend met -1 als opgegeven paginaformaat.

Zie azure/data-api-builder - Pagineringslimieten toevoegen voor meer informatie.

Gezondheidsstatus

In eerdere versies van DAB retourneert de API een tekenreeksstatusbericht van healthy het hoofdeindpunt (/). Nu retourneert het hulpprogramma een JSON-object met de status, versie en de naam van de toepassing die aangeeft of DAB wordt gehost of de oss-versie (opensource-software).

De versie 0.12.0 van de OSS-containerafbeelding 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 databases in REST

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 for NoSQL in DAB.

Ondersteuning voor patchbewerking

Azure Cosmos DB-patchbewerkingen worden nu ondersteund met behulp van de patch<entity-name> mutatie.

Stel dat er een kleine container is met diverse voorwerpen van de auteur die zijn gepartitioneerd door publisher. Stel nu 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 specificeert:

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 die ownerId gelijk zijn aan de bestaande UserId items van het object van @claims de id-provider.

{
  "<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

Hiermee werkt u de bestaande Azure Cosmos DB for NoSQL-query-engine bij voor het gebruik van de cache in het geheugen van Azure Cosmos DB.

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.

Applicatienaam aan verbindingsreeks koppelen

DAB is nu een aanvulling op de PostgreSQL-verbindingsreeks 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
  • Hiermee voegt u 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.