Dela via


Nyheter i Data API Builder version 1.1

Viktig information om uppdateringar och förbättringar i DATA API Builder (DAB) version 1.1.

Viktigt

Det här är den första allmänna tillgänglighetsversionen (GA) på Data API Builder (DAB).

Viktig information om GitHub

Granska de här versionssidorna för en omfattande lista över alla ändringar och förbättringar:

Länk
2024-05-14 – Version 1.1.7 https://github.com/azure/data-api-builder/releases/tag/v1.1.7

.NET 8-stöd

DAB använder nu multi-targeting för att stödja både .NET 6- och .NET 8-versioner för långsiktigt stöd (LTS).

Mer information finns i azure/data-api-builder – .NET-mål för flera ramverk.

Stöd för flera graphQL-mutationer

DAB har nu stöd för att kombinera flera mutationsåtgärder till en enda GraphQL-transaktion. Det aktuella stödet är endast begränsat till create åtgärder.

Anta till exempel att vi har Book och Chapter entiteter som är relaterade. Med flera mutationer kan du skapa den primära bokentiteten och alla relaterade kapitelentiteter som en enda åtgärd.

mutation {
  createBook(
    item: {
      title: "Data API builder deep-dive"
      chapters: [
        { name: "Multiple mutations" }
        { name: "Relationships" }
      ]
    }
  ) {
    title
    chapters {
      items {
        name
      }
    }
  }
}

Den här funktionen dokumenteras på djupet i vår guide om flera mutationer.

Mer information finns i azure/data-api-builder – Flera mutationer i GraphQL.

Förbättringar av sidnumrering

DAB har nu en paginationOptions konfigurationsegenskap för att justera olika egenskaper för det inbyggda sidnumreringsstödet. Underegenskaperna är:

Standardvärde Beskrivning
default-page-size 100 Sidstorlek om en begäran görs utan angiven sidstorlek.
max-page-size 100 000 Sidstorlek om en begäran görs med -1 angiven sidstorlek.

Mer information finns i azure/data-api-builder – Lägg till sidnumreringsgränser.

Hälsostatus

I tidigare versioner av DAB returnerar API:et ett strängstatusmeddelandehealthy för vid rotslutpunkten (/). Nu returnerar verktyget ett JSON-objekt som innehåller status, version och programnamnet som anger om DAB är värd för eller VERSIONEN av programvara med öppen källkod (OSS).

Till exempel returnerar versionen 0.12.0 av OSS-containeravbildningen det här statusmeddelandet som standard:

{
    "status": "Healthy",
    "version": "0.12.0",
    "app-name": "dab_oss_0.12.0"
}

Mer information finns i azure/data-api-builder – Förbättrade hälsoslutpunktsmetadata.

Stöd för rest-flera databaser

I REST-API:et stöds nu flera databaser (eller datakällor). Databasnamnet bestäms baserat på varje entitet.

Mer information finns i azure/data-api-builder – Stöd för flera databaser i REST.

Förbättringar av Azure Cosmos DB for NoSQL

Det fanns några förbättringar av det befintliga Stödet för Azure Cosmos DB for NoSQL i DAB.

Stöd för korrigeringsåtgärder

Korrigeringsåtgärder för Azure Cosmos DB stöds nu med hjälp av mutationen patch<entity-name> .

Anta till exempel att det finns en liten container med olika redigeringsobjekt partitionerade av publisher. Anta nu att containern har det här objektet och schemat:

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

Om du vill korrigera med GraphQL använder du mutationen patchAuthor som anger både den unika identifieraren och partitionsnyckeln:

mutation {
  patchAuthor(
    item: { 
      middleName: "A." 
    }
    id: "04511cbc-459d-4e39-b957-363f26771fc0"
    _partitionKeyValue: "Contoso Books"
  ) {
    middleName
  }
}

Mer information finns i azure/data-api-builder – Korrigeringsstöd.

Säkerhet på objektnivå

Säkerhet på objektnivå (databasprinciper) stöds nu med Azure Cosmos DB för NoSQL. Databasprinciputtrycket utvärderas för att avgöra vilka objekt som den aktuella rollen kan komma åt.

Den här rolldefinitionen definierar till exempel en ny roll med namnet scoped-reader som bara kan läsa objekt där ownerId är likvärdigt med den befintliga UserId från identitetsproviderns @claims objekt.

{
  "<entity-name>": {
    "permissions": [
      {
        "role": "scoped-reader",
        "actions": [
          {
            "action": "read",
            "policy": {
              "database": "@item.ownerId eq @claims.UserId"
            }
          }
        ]
      }
    ]
  }
}

Mer information finns i azure/data-api-builder – Stöd för autentisering på objektnivå med hjälp av databasprincip.

Stöd för minnesintern cache

Uppdateringar befintliga Azure Cosmos DB for NoSQL-frågemotorn för att använda Azure Cosmos DB:s minnesinterna cacheminne.

Mer information finns i azure/data-api-builder – minnesinternt cachestöd.

PostgreSQL-förbättringar

Det finns en förbättring av det befintliga PostgreSQL-stödet i DAB.

Sammanfoga programnamnet till anslutningssträng

DAB kompletterar nu PostgreSQL-anslutningssträng med DAB-programnamnet. Verktyget kontrollerar om det redan finns ett programnamn i anslutningssträng och antingen:

  • Lägger till ett nytt DAB-programnamn om det inte finns något eller
  • Lägger till DAB-programnamnet efter det befintliga programnamnet med en , avgränsare.

Mer information finns i azure/data-api-builder – Lägg till programnamn för PostgreSQL-anslutningar.