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:
- 2024-02-06 - Versão 0.10.23
- 2024-01-31 - Versão 0.10.21
- 2023-12-07 - Versão 0.10.11
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
- Validação de esquemas
- Validação de propriedades de configuração
- Validação da permissão de configuração
- Validação da ligação da base de dados
- Validação de Metadados de Entidades
Funcionalidades de Pré-visualização
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:
- 0.8.52: página de versão do GitHub
- 0.8.51: página de versão do GitHub
- 0.8.50: página de versão do GitHub
- 0.8.49: página de versão do GitHub
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
- Resolver problema de negação de acesso a filtros para o Cosmos
- Correção de erros da autenticação do campo do Azure Cosmos DB quando o graphql é "verdadeiro", incluir é "*"
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 personalizadorest.disabled
: Para desativar os pontos finais REST globalmentegraphql.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
}
Substituir a ligação de armazenamento do Azure por ligações do GitHub
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 operation
graphql
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
eDevelopment
são atualizados paraError
eDebug
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.fields
ecardinality
são registados. Se existirem relações muitos-para-muitos,linking.object
,linking.source.fields
elinking.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 aostart
comando. Com esta opção, o redirecionamento automático de pedidos dehttp
parahttps
pode ser impedido.No MsSql, o contexto de sessão pode ser ativado através
--set-session-context true
doinit
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.audience
e--auth.issuer.
noinit
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
}
}