Partilhar via


Novidades na versão 0.11 e anterior

Notas de versão e informações sobre todas as atualizações e melhoramentos na versão 0.11 e anterior do Construtor de API de Dados.

Novidades na versão 0.11

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

Suporte do GraphQL para o SQL Data Warehouse

O SQL Data Warehouse suporta agora pontos finais do GraphQL.

Filtragem avançada do Azure Cosmos DB para NoSQL

O Azure Cosmos DB para NoSQL tem agora suporte para filtros aninhados, variáveis de ID e pesquisas de matrizes de cadeias com o contains operador.

Ativar a recolha de dados da aplicação com a interface de linha de comandos

Agora, pode utilizar a interface de linha de comandos (CLI) do DAB para ativar a recolha de dados com o Application Insights.

Novidades na versão 0.10

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

O nosso foco muda para a estabilidade à medida que nos aproximamos da Disponibilidade Geral. Embora nem todos os esforços na qualidade do código e na estabilidade do motor sejam detalhados neste artigo, esta lista realça atualizações significativas.

Notas de versão do GitHub

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

Colocar em cache dentro da memória

A versão 0.10 introduz a colocação em cache na memória para pontos finais REST e GraphQL. Esta funcionalidade, concebida para colocação em cache interna, estabelece as bases para a colocação em cache distribuída futura. A colocação em cache na memória reduz a carga da base de dados de consultas repetitivas.

Cenários de Colocação em Cache

  • Reduzir a carga da base de dados: a cache armazena os resultados de consultas dispendiosas, eliminando a necessidade de chamadas de bases de dados repetidas.
  • Melhorar a escalabilidade da API: a colocação em cache suporta chamadas à API mais frequentes sem aumentar os pedidos de base de dados, dimensionando significativamente as capacidades da API.

Alterações de Configuração

As definições de colocação em cache estão disponíveis na runtime secção e para cada entidade, oferecendo controlo granular.

Definições de tempo de execução:

{
  "runtime": {
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}
  • A colocação em cache está desativada por predefinição.
  • O TTL (time-to-live) predefinido é de 5 segundos.

Definições da entidade:

{
  "Book": {
    "source": {
      "object": "books",
      "type": "table"
    },
    "graphql": {
      "enabled": true,
      "type": {
        "singular": "book",
        "plural": "books"
      }
    },
    "rest": {
      "enabled": true
    },
    "permissions": [
      {
        "role": "anonymous",
        "actions": [
          {
            "action": "*"
          }
        ]
      }
    ],
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}

Validação de Configuração na CLI

A CLI suporta agora a verificação de erros ou inconsistências nos ficheiros dab validate de configuração, melhorando o fluxo de trabalho de desenvolvimento.

Passos de Validação

  1. Validação de esquemas
  2. Validação de propriedades de configuração
  3. Validação da permissão de configuração
  4. Validação da ligação da base de dados
  5. Validação de Metadados de Entidades

Funcionalidades de Pré-visualização

  • Suporte inicial do DWSQL. #1864
  • Suporte para várias origens de dados. #1709

Novidades na versão 0.9

Eis os detalhes sobre as alterações e melhorias mais relevantes no Construtor de API de Dados 0.9.

Notas de versão do GitHub

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

Ativar o Application Insights ao autoalojar o DAB

Os registos podem agora ser transmitidos para o Application Insights para uma melhor experiência de monitorização e depuração, especialmente quando o construtor de API de Dados é implementado no Azure. Pode adicionar uma nova telemetry secção ao ficheiro de configuração para ativar e configurar a integração com o Application Insights:

"telemetry": {
    "application-insights": {
    "enabled": true,    // To enable/disable application insights telemetry
    "connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
    }
}

Leia todos os detalhes na página de documentação Utilizar o Application Insights .

Suporte para ignorar campos desnecessários no corpo do pedido REST

Com a nova request-body-strict opção, agora pode decidir se ter um campo extra no payload REST gera um erro (comportamento predefinido, retrocompatível) ou se os campos adicionais são ignorados silenciosamente.

"runtime": {
    "rest": {
      "enabled": true,
      "path": "/api",
      "request-body-strict": true
    },
    ...
}

Ao definir a opção request-body-strict como false, os campos que não têm um mapeamento para o objeto de base de dados relacionado são ignorados sem gerar qualquer erro.

Adicionar o Nome da Aplicação para mssql ligações

O construtor de API de Dados injeta agora na cadeia de ligação, apenas para mssql tipos de base de dados, o valor dab-<version> como Application Name propriedade, facilitando a identificação das ligações no servidor de bases de dados. Se Application Name já estiver presente na cadeia de ligação, a versão do Construtor de API de Dados é anexada à mesma.

Tipo de dados de suporte time no mssql

time O tipo de dados é agora suportado em mssql bases de dados.

Mutações na tabela com acionadores para mssql

As mutações são agora totalmente suportadas em tabelas com acionadores para mssql bases de dados.

Impedir a atualização/inserção de campos só de leitura numa tabela por utilizador

Detete automaticamente campos só de leitura na base de dados e impeça a atualização/inserção desses campos pelo utilizador.

Novidades na versão 0.8

Eis os detalhes sobre as alterações e melhorias mais relevantes no Construtor de API de Dados 0.8.

Notas de versão do GitHub

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

Foi adicionado suporte para o ficheiro .env

As variáveis de ambiente protegem os segredos da exposição ao texto simples e permitem a troca de valores em diferentes definições. No entanto, estas variáveis têm de ser definidas no âmbito do utilizador ou do computador, o que pode levar à "hemorragia" da variável entre projetos se os nomes das variáveis forem duplicados. A melhor alternativa são os ficheiros de ambiente. Para obter mais informações, veja ficheiros de ambiente no Construtor de API de Dados – blogue.

Novidades na versão 0.7.6

Este artigo descreve as notas de versão da versão 0.7.6.

Pedidos Pull do GitHub

Suporte Inicial para a criação de documentos de descrição do OpenAPI v3-0-1

O construtor de API de Dados suporta a norma OpenAPI para gerar e expor documentos de descrição que contêm informações úteis sobre o serviço. Estes documentos são criados a partir do ficheiro de configuração do runtime e dos metadados para cada objeto de base de dados. Estes objetos estão associados a uma entidade ativada para REST definida nesse mesmo ficheiro de configuração. Em seguida, são expostos através de uma IU e disponibilizados como um ficheiro serializado.

Para obter mais informações sobre as especificidades do OpenAPI e do Construtor de API de Dados, veja OpenAPI.

Permitir a fusão de ficheiros de configuração

Adiciona a capacidade de intercalar automaticamente dois ficheiros de configuração.

É possível manter vários pares de ficheiros de configuração específicos da linha de base e do ambiente para simplificar a gestão das definições específicas do ambiente. Por exemplo, é possível manter configurações separadas para Desenvolvimento e Produção. Este passo envolve ter um ficheiro de configuração base que tenha todas as definições comuns entre os diferentes ambientes. Em seguida, ao definir a DAB_ENVIRONMENT variável, é possível controlar que ficheiros de configuração intercalar para consumo pelo Construtor de API de Dados.

Para obter mais informações, veja Referência da CLI.

Executar Mutações GraphQL e REST numa transação

O construtor de API de Dados cria transações de base de dados para executar determinados tipos de pedidos GraphQL e REST.

Existem muitos pedidos que envolvem fazer mais do que uma consulta de base de dados para realizar. Por exemplo, para devolver os resultados de uma atualização, primeiro tem de ser feita uma consulta para a atualização e, em seguida, os novos valores têm de ser lidos antes de serem devolvidos. Quando um pedido requer a execução de várias consultas de base de dados, o Construtor de API de Dados executa agora estas consultas de base de dados numa única transação.

Pode ler mais sobre esta capacidade no contexto do REST na documentação REST e do GraphQL na documentação do GraphQL.

Novidades na versão 0.6.14

Este artigo descreve o patch da versão de março de 2023 do Construtor de API de Dados para Bases de Dados do Azure.

Correções de Erros

  • Resolver o problema de acesso negado ao filtro de consulta do Cosmos.
  • Atualmente, o Cosmos DB não suporta autorização ao nível do campo, para evitar a situação em que os utilizadores transmitem acidentalmente as field permissões na configuração do runtime, adicionámos uma verificação de validação.

Novidades na versão 0.6.13

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.

Novo comando da CLI para exportar o esquema do GraphQL

É adicionada uma nova opção para exportar o esquema GraphQL. Esta ação inicia o servidor DAB e, em seguida, consulta-o para obter o esquema antes de o escrever na localização fornecida.

dab export --graphql -c dab-config.development.json -o ./schemas

Este comando gera o ficheiro de esquema GraphQL no diretório ./schemas. O caminho para o ficheiro de configuração é um parâmetro opcional, que é predefinido para "dab-config.json", a menos que "dab-config.<>DAB_ENVIRONMENT.json' existe, em que DAB_ENVIRONMENT é uma variável de ambiente.

Suporte da política de base de dados para criar ação para MsSql

As políticas de base de dados são agora suportadas para todas as operações CRUD (Criar, Ler, Atualizar, Eliminar) para MsSql. Por exemplo:

"entities":{
  "Revenue":{
    "source": "revenues",
    "permissions":[
      "role": "authenticated",
          "actions": [
            {
              "action": "Create",
              "policy": {
                "database": "@item.revenue gt 0"
              }
            },
            "read",
            "update",
            "delete"
          ]
    ]
  }
}

A configuração anterior da Revenue entidade indica que o utilizador que está a executar uma operação de inserção com Authenticated função não tem permissão para criar um registo com receitas inferiores ou iguais a zero.

Capacidade de configurar o caminho do GraphQL e desativar os pontos finais REST e GraphQL globalmente através da CLI

Agora suportamos mais três opções para o init comando:

  • graphql.path : para fornecer um caminho GraphQL personalizado
  • rest.disabled: Para desativar os pontos finais REST globalmente
  • graphql.disabled: para desativar os pontos finais do GraphQL globalmente

Por exemplo, um init comando geraria um ficheiro de configuração com uma secção de runtime:

dab init --database-type mssql --rest.disabled --graphql.disabled --graphql.path /gql
"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/gql"
    },
}

Campos de chave obrigatórios para adicionar e atualizar vistas na CLI

Agora, é obrigatório que o utilizador forneça os campos de chave (a serem utilizados como chave primária) através da opção source.key-fields exposta sempre que adicionar uma nova vista de base de dados (via dab add) à configuração através da CLI. Além disso, sempre que atualizar algo na configuração da vista (via dab update) no ficheiro de configuração através da CLI, se a atualização alterar algo relacionado com a definição da vista na base de dados subjacente (por exemplo, tipo de origem, campos-chave), também é obrigatório especificar os campos de chave no comando de atualização.

No entanto, ainda suportamos vistas sem ter chaves primárias explícitas especificadas na configuração, mas a configuração para essas vistas tem de ser escrita diretamente no ficheiro de configuração.

Por exemplo, é utilizado um dab add comando para adicionar uma vista:

dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true

Este comando gera a configuração para books_view a entidade que é semelhante a este exemplo:

"books_view": {
      "source": {
        "type": "view",
        "object": "books_view",
        "key-fields":[
          "id"
        ]
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "*"
          ]
        }
      ],
      "rest": true,
      "graphql": true
    }

Uma vez que o DAB é agora open source, não precisamos de transferir os artefactos a partir da conta de armazenamento. Em vez disso, podemos transferi-los diretamente a partir do GitHub. Por conseguinte, as ligações são atualizadas em conformidade.

Novidades na versão 0.5.34

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.

Honor REST and GraphQL enabled flag at runtime level (Sinalizador ativado para REST e GraphQL em honra ao nível do runtime)

É adicionada uma nova opção para permitir ativar ou desativar pedidos REST/GraphQL para todas as entidades ao nível do runtime. Se for desativada globalmente, nenhuma entidade estaria acessível através de pedidos REST ou GraphQL, independentemente das definições de entidades individuais. Se estiver ativada globalmente, as entidades individuais estão acessíveis por predefinição, a menos que sejam explicitamente desativadas pelas definições ao nível da entidade.

"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/graphql"
    }
  }

ID de Correlação nos registos de pedidos

Para ajudar na depuração, anexamos um ID de correlação a quaisquer registos gerados durante um pedido. Uma vez que podem ser feitos muitos pedidos, é importante ter uma forma de identificar os registos de um pedido específico para ajudar no processo de depuração.

Suporte da Operação de Carateres Universais para Procedimentos Armazenados no Motor e na CLI

Para procedimentos armazenados, as funções podem agora ser configuradas com a ação de caráter universal * , mas expandem-se apenas para a ação execute .

Novidades na versão 0.5.32

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.

Capacidade de personalizar o caminho rest através da CLI

É introduzida uma nova opção --rest.path no init comando para personalizar o caminho das APIs REST.

dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api" 

Este comando configura os pontos finais REST com um prefixo de rest-api. O caminho completo para os pontos finais REST é https://<dab-server>/rest-api/<entity-name>

Quando --rest.path a opção não é utilizada, os pontos finais REST são configurados com o prefixo predefinido api. O caminho completo neste caso é https://<dab-server>/api/<entity-name>

Imagem de contentor do Construtor de API de Dados no MAR

As imagens oficiais do Docker para o Construtor de API de Dados para Bases de Dados do Azure estão agora disponíveis no Registo de Artefactos da Microsoft.

Para obter instruções sobre como utilizar as imagens publicadas, veja Registo de contentor da Microsoft – Construtor de API de Dados.

Suporte para fragmentos do GraphQL

Os fragmentos são parte reutilizável de uma consulta graphQL. Em cenários em que os mesmos campos têm de ser consultados em consultas diferentes, os campos repetidos podem ser consolidados num único componente reutilizável chamado fragmento.

Para obter mais informações sobre fragmentos, veja Consultas do GraphQL.

Um fragmento chamado description no tipo Character é definido em seguida:

fragment description on Character {
  name
  homePlanet
  primaryFunction
}

Uma consulta GraphQL que utiliza o fragmento definido pode ser construída conforme ilustrado aqui:

{
  Player1: Player{
    id
    playerDescription{
        ...description
    }
  }
}

Para a consulta anterior, o resultado contém os seguintes campos:

{
 Player1: Player{
    id
    playerDescription{
        name
        homePlanet
        primaryFunction
    }
  }   
}

Ativar BinSkim e corrigir alertas de Policheck

BinSkim é um scanner de peso leve executável portátil (PE) que valida as definições do compilador/linker e outras características binárias relevantes para a segurança. É adicionada uma tarefa de pipeline no static-tools pipeline para efetuar análises binSkim com cada execução de pipeline. O sistema PoliCheck é um conjunto de ferramentas e dados que ajuda a manter-se em conformidade com o Requisito de Revisão de Texto e Código, como parte da política global de Preparação Global. Os alertas gerados pelas análises de Policheck são corrigidos para serem compatíveis com termos confidenciais.

Novidades na versão 0.5.0

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.

Esquema JSON Público

O esquema JSON público dá-lhe suporte para o "intellisense", se estiver a utilizar um IDE como o Visual Studio Code que suporta Esquemas JSON. O basic-empty-dab-config.json ficheiro na samples pasta tem um ponto de partida de exemplo ao criar manualmente o dab-config.json ficheiro.

NuGet Público Microsoft.DataApiBuilder

Microsoft.DataApiBuilder está agora disponível como um pacote NuGet público aqui para facilitar a instalação com a ferramenta dotnet da seguinte forma:

dotnet tool install --global Microsoft.DataApiBuilder

Nova execute ação para procedimentos armazenados no SQL do Azure

Uma nova execute ação é introduzida como a única ação permitida na permissions secção do ficheiro de configuração apenas quando um tipo de origem suporta uma entidade de stored-procedure. Por predefinição, apenas POST o método é permitido para essas entidades e apenas a operação do GraphQL mutation é configurada com o prefixo adicionado ao respetivo execute nome. Especificar explicitamente o permitido methods na rest secção do ficheiro de configuração substitui este comportamento. Da mesma forma, para o GraphQL, o operationgraphql na secção pode ser substituído para ser query . Para obter mais informações, veja vistas e procedimentos armazenados.

Nova mappings secção

mappings Na secção em cada entity, os mapeamentos entre os nomes dos campos de objetos da base de dados e os respetivos nomes de campo expostos correspondentes são definidos para pontos finais GraphQL e REST.

O formato é:

<database_field>: <entity_field>

Por exemplo:

  "mappings":{
    "title": "descriptions",
    "completed": "done"
  }

O title campo no objeto de base de dados relacionado é mapeado para description o campo no tipo GraphQL ou no payload pedido REST e resposta.

Suporte para o Contexto de Sessão no SQL do Azure

Para ativar uma camada adicional de Segurança (por exemplo, Segurança ao Nível da Linha (RLS), o DAB suporta agora o envio de dados para a base de dados do Sql Server subjacente através de SESSION_CONTEXT. Para obter mais detalhes, veja este documento detalhado sobre SESSION_CONTEXT: Runtime para Autorização de Base de Dados.

Suporte para filtrar objetos aninhados num documento no PostgreSQL

Com o PostgreSQL, agora pode utilizar a relação de objetos ou matrizes definida no esquema, que permite realizar operações de filtro nos objetos aninhados, tal como o SQL do Azure.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Suportar lista escalar no NoSQL do Cosmos DB

A capacidade de consultar List scalars é agora adicionada para o Cosmos DB.

Considere esta definição de tipo.

type Planet @model(name:"Planet") {
    id : ID,
    name : String,
    dimension : String,
    stars: [Star]
    tags: [String!]
}

Agora é possível executar uma consulta que obtém uma Lista, como

query ($id: ID, $partitionKeyValue: String) {
    planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
        tags
    }
}

Suporte de registo melhorado com o nível de registo

  • Os níveis de registo predefinidos para o motor quando host.mode é Production e Development são atualizados para Error e Debug respetivamente.
  • Durante o arranque do motor, para cada coluna de uma entidade, são registadas informações como nomes de campo expostos e a chave primária. Este comportamento ocorre mesmo quando o mapeamento de campos é gerado automaticamente.
  • No cenário de execução local, todas as consultas que são geradas e executadas durante o arranque do motor são registadas ao Debug nível.
  • Para cada entidade, os campos de relação, como source.fields, target.fieldse cardinality são registados. Se existirem relações muitos-para-muitos, linking.object, linking.source.fieldse linking.target.fields inferidas a partir da base de dados (ou do ficheiro de configuração) são registadas.
  • Para cada pedido recebido, a função e o estado de autenticação do pedido são registados.
  • Na CLI, a Microsoft.DataAPIBuilder versão é registada juntamente com os registos associados à execução do respetivo comando.

CLI atualizada

  • --no-https-redirect opção é adicionado ao start comando. Com esta opção, o redirecionamento automático de pedidos de http para https pode ser impedido.

  • No MsSql, o contexto de sessão pode ser ativado através --set-session-context true do init comando . Neste exemplo, é apresentado um comando de exemplo:

    dab init --database-type mssql --connection-string "Connection String" --set-session-context true
    
  • Os detalhes de autenticação, como o fornecedor, a audiência e o emissor, podem ser configurados com as opções --auth.provider, --auth.audiencee --auth.issuer. no init comando . É apresentado um comando de exemplo neste exemplo:

    dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
    
  • Mensagens de erro amigáveis quando o nome da entidade não é especificado.

Novidades na versão 0.4.11

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.

Esquema JSON atualizado para data-source a secção

A data-source secção no ficheiro de configuração é atualizada para ser consistente em todas as bases de dados suportadas, mas ainda assim permite que cada base de dados tenha configurações personalizadas. É introduzida uma nova secção options para agrupar todas as propriedades específicas de uma base de dados. Por exemplo:

{
  "$schema": "https://dataapibuilder.azureedge.net/schemas/v0.4.11-alpha/dab.draft.schema.json",
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    },
    "connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;"
  }
}

Os elementos disponíveis na options secção dependem do escolhido database-type.

Suporte para filtrar objetos aninhados num documento no SQL do Azure e no SQL Server

Com o SQL do Azure e o SQL Server, pode utilizar a relação de matriz ou objeto definida no esquema, que permite realizar operações de filtro nos objetos aninhados.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Suporte de procedimento armazenado melhorado

Suporte total para o procedimento armazenado no REST e no GraphQL. Procedimento armazenado com parâmetros agora 100% suportados. Consulte a documentação Dos Procedimentos Armazenados para saber como utilizar o Construtor de API de Dados com procedimentos armazenados.

Novo database-type valor mudado para o Cosmos DB

Adicionámos suporte para a API postgreSQL com o Cosmos DB. Com uma secção consolidada data-source , o atributo database-type indica o tipo de base de dados. Uma vez que o Cosmos DB suporta várias APIs, os tipos de base de dados atualmente suportados são cosmosdb_nosql e cosmosdb_postgresql.

  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    }
  }

Mudar o nome das propriedades da CLI para cosmosdb_nosql

Após as alterações de configuração descritas nas secções anteriores, agora as propriedades da CLI são renomeadas em conformidade como cosmosdb_nosql-database e cosmosdb_nosql-container para a API NoSQL do Cosmos DB.

dab init --database-type "cosmosdb_nosql" --graphql-schema schema.gql --cosmosdb_nosql-database PlaygroundDB  --cosmosdb_nosql-container "books" --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;" --host-mode "Development"

Identidade Gerida agora suportada com o Postgres

Agora, o utilizador pode especificar, em alternativa, o token de acesso na configuração para autenticar com uma Identidade Gerida. Em alternativa, agora o utilizador não consegue especificar a palavra-passe na cadeia de ligação e o runtime tenta obter o token de identidade gerida predefinido. Se isto falhar, a ligação é tentada sem uma palavra-passe na cadeia de ligação.

Suportar a autenticação de utilizador do Microsoft Entra ID para o Azure MySQL

Foi adicionado o token de utilizador como campo de palavra-passe para autenticar com o MySQL com o plug-in do Microsoft Entra ID.

Novidades na versão 0.3.7

A lista completa de notas de versão para esta versão está disponível no GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.

Ver suporte

As vistas são agora suportadas tanto no REST como no GraphQL. Se tiver uma vista, por exemplo dbo.vw_books_details , pode ser exposta com o seguinte dab comando:

dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"

A source.key-fields opção é utilizada para especificar que campos da vista são utilizados para identificar exclusivamente um item, para que a navegação por chave primária também possa ser implementada para vistas. É da responsabilidade do programador configurar o DAB para ativar ou desativar ações (por exemplo, a create ação) consoante a vista seja atualizável ou não.

Suporte de procedimentos armazenados

Os procedimentos armazenados são agora suportados para pedidos REST. Se tiver um procedimento armazenado, por exemplo dbo.stp_get_all_cowritten_books_by_author , pode ser exposto com o seguinte dab comando:

dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true

O parâmetro pode ser transmitido na cadeia de consulta do URL ao chamar o ponto final REST:

http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov

Nota

É da responsabilidade do programador configurar o DAB para ativar ou desativar ações (por exemplo, a create ação) para permitir ou negar verbos HTTP específicos ao chamar o procedimento armazenado. Por exemplo, para o procedimento armazenado utilizado no exemplo, dado que a sua finalidade é devolver alguns dados, faria sentido permitir apenas a ação read .

Autenticação do Microsoft Entra ID

A autenticação do Microsoft Entra ID está agora totalmente a funcionar. Para obter mais informações, veja Authentication with Microsoft Entra ID (Autenticação com o Microsoft Entra ID).

Novo fornecedor de autenticação de simulador para autenticação local

Para simplificar os testes de pedidos autenticados ao programar localmente, está disponível um novo simulator fornecedor de autenticação. O fornecedor simulator é um fornecedor de autenticação configurável, que instrui o motor do construtor de API de Dados a tratar todos os pedidos como autenticados. Mais detalhes aqui: Autenticação Local

Suporte para filtrar objetos aninhados num documento no Azure Cosmos DB

Com o Azure Cosmos DB, pode utilizar a relação de objetos ou matrizes definida no esquema, que permite realizar operações de filtro nos objetos aninhados.

query {
  books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
    id
    name
  }
}