Partilhar via


Novidades no Data API Builder versão 1.1

Notas de versão e informações sobre as atualizações e melhorias na versão 1.1 do Construtor de API de Dados (DAB).

Importante

Esta é a primeira versão de disponibilidade geral (GA) no Construtor de API de Dados (DAB).

Notas de versão do GitHub

Reveja estas páginas de versão para obter uma lista abrangente de todas as alterações e melhorias:

Ligação
2024-05-14 - Versão 1.1.7 https://github.com/azure/data-api-builder/releases/tag/v1.1.7

Suporte para .NET 8

O DAB utiliza agora várias segmentações para suportar as versões de suporte de longo prazo (LTS) do .NET 6 e .NET 8.

Para obter mais informações, veja azure/data-api-builder - Segmentação multi-arquitetura .NET.

Suporte de múltiplas mutações do GraphQL

Agora, o DAB suporta a combinação de múltiplas operações de mutação numa única transação GraphQL. O suporte atual está confinado apenas a create operações.

Por exemplo, suponhamos que temos Book entidades e Chapter relacionadas. Com múltiplas mutações, pode criar a entidade do livro primário e todas as entidades de capítulo relacionadas como uma única operação.

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

Esta funcionalidade está documentada em profundidade no nosso Guia de múltiplas mutações.

Para obter mais informações, veja azure/data-api-builder - Múltiplas mutações no GraphQL.

Melhoramentos de paginação

O DAB tem agora uma paginationOptions propriedade de configuração para ajustar várias características do suporte de paginação incorporado. Os subpropriedades incluem:

Valor predefinido Description
default-page-size 100 Tamanho da página se for feito um pedido sem o tamanho de página especificado.
max-page-size 100.000 Tamanho da página se for feito um pedido com -1 o tamanho de página especificado.

Para obter mais informações, veja azure/data-api-builder – Adicionar limites de paginação.

Estado de funcionamento

Em versões anteriores do DAB, a API devolveria uma mensagem de estado de cadeia de carateres de healthy no ponto final raiz (/). Agora, a ferramenta devolve um objeto JSON que contém o estado, a versão e o nome da aplicação que indica se o DAB está alojado ou a versão de software open source (OSS).

Por exemplo, a versão 0.12.0 da imagem de contentor do OSS devolveria esta mensagem de estado por predefinição:

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

Para obter mais informações, veja azure/data-api-builder – Metadados do ponto final de estado de funcionamento melhorados.

Suporte de várias bases de dados REST

Na API REST, são agora suportadas várias bases de dados (ou origens de dados). O nome da base de dados é determinado com base em cada entidade.

Para obter mais informações, veja azure/data-api-builder – Suporte de várias bases de dados em REST.

Melhorias do Azure Cosmos DB para NoSQL

Foram efetuados alguns melhoramentos ao suporte existente do Azure Cosmos DB para NoSQL no DAB.

Suporte da operação de patch

As operações de patch do Azure Cosmos DB são agora suportadas com a patch<entity-name> mutação.

Por exemplo, suponha que existe um pequeno contentor com vários itens de autor particionados por publisher. Agora, suponha que o contentor tem este item e esquema:

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

Para aplicar patches com o GraphQL, utilize a patchAuthor mutação que especifica o identificador exclusivo e a chave de partição:

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

Para obter mais informações, veja azure/data-api-builder - Suporte de patches.

Segurança ao nível do item

A segurança ao nível do item (políticas de base de dados) é agora suportada com o Azure Cosmos DB para NoSQL. A expressão da política de base de dados é avaliada para determinar a que itens a função atual pode aceder.

Por exemplo, esta definição de função definiria uma nova função com o nome scoped-reader que só pode ler itens em que o ownerId é equivalente ao existente UserId a partir do objeto do fornecedor de @claims identidade.

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

Para obter mais informações, veja azure/data-api-builder - Suporte de autenticação ao nível do item com a política de base de dados.

Suporte para cache dentro da memória

Atualizações motor de consulta existente do Azure Cosmos DB para NoSQL para utilizar a cache dentro da memória do Azure Cosmos DB.

Para obter mais informações, veja azure/data-api-builder - Suporte da cache na memória.

Melhorias do PostgreSQL

Existe um melhoramento do suporte do PostgreSQL existente no DAB.

Concatenar o nome da aplicação para cadeia de ligação

O DAB complementa agora a cadeia de ligação postgreSQL com o nome da aplicação DAB. A ferramenta verifica se já existe um nome de aplicação no cadeia de ligação e:

  • Adiciona um novo nome de aplicação DAB se não existir ou
  • Adiciona o nome da aplicação DAB após o nome da aplicação existente com um , separador.

Para obter mais informações, veja azure/data-api-builder - Adicionar o nome da aplicação para ligações PostgreSQL.