Novedades de la versión 0.11 y anteriores
Notas de la versión e información sobre todas las actualizaciones y mejoras de Data API Builder versión 0.11 y anteriores.
Novedades de la versión 0.11
Notas de la versión e información sobre las actualizaciones y mejoras de Data API Builder versión 0.10.
Compatibilidad de GraphQL con SQL Data Warehouse
SQL Data Warehouse ahora admite puntos de conexión de GraphQL.
Filtrado mejorado de Azure Cosmos DB para NoSQL
Azure Cosmos DB para NoSQL ahora tiene compatibilidad con filtros anidados, variables de identificador y búsquedas de matrices de cadenas con el contains
operador .
Habilitación de la recopilación de datos de la aplicación con la interfaz de la línea de comandos
Ahora puede usar la interfaz de línea de comandos (CLI) de DAB para habilitar la recopilación de datos con Application Insights.
Novedades de la versión 0.10
Notas de la versión e información sobre las actualizaciones y mejoras de Data API Builder versión 0.10.
Nuestro enfoque cambia a la estabilidad a medida que abordamos la disponibilidad general. Aunque no todos los esfuerzos en la calidad del código y la estabilidad del motor se detallan en este artículo, en esta lista se resaltan actualizaciones significativas.
Notas de la versión de GitHub
Revise estas páginas de versión para obtener una lista completa de todos los cambios y mejoras:
- 2024-02-06: versión 0.10.23
- 2024-01-31: versión 0.10.21
- 2023-12-07: versión 0.10.11
Almacenamiento en caché en memoria
La versión 0.10 presenta el almacenamiento en caché en memoria para los puntos de conexión REST y GraphQL. Esta característica, diseñada para el almacenamiento en caché interno, establece el terreno para el almacenamiento en caché distribuido futuro. El almacenamiento en caché en memoria reduce la carga de la base de datos de consultas repetitivas.
Escenarios de almacenamiento en caché
- Reducción de la carga de la base de datos: la memoria caché almacena los resultados de las consultas costosas, lo que elimina la necesidad de llamadas repetidas a la base de datos.
- Mejora de la escalabilidad de la API: el almacenamiento en caché admite llamadas API más frecuentes sin aumentar las solicitudes de base de datos, escalando significativamente las funcionalidades de la API.
Cambios de configuración
La configuración de almacenamiento en caché está disponible en la runtime
sección y, para cada entidad, ofrece un control granular.
Configuración del entorno de ejecución:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- El almacenamiento en caché está deshabilitado de forma predeterminada.
- El período de vida predeterminado (TTL) es de 5 segundos.
Configuración de la entidad:
{
"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
}
}
}
Validación de configuración en la CLI
La CLI ahora admite dab validate
la comprobación de los archivos de configuración de errores o incoherencias, lo que mejora el flujo de trabajo de desarrollo.
Pasos de validación
- Validación de esquemas
- Validación de propiedades de configuración
- Validación de permisos de configuración
- Validación de la conexión de base de datos
- Validación de metadatos de entidades
Características en vista previa
Novedades de la versión 0.9
Estos son los detalles sobre los cambios más relevantes y la mejora en Data API Builder 0.9.
Notas de la versión de GitHub
Revise estas páginas de versión para obtener una lista completa de todos los cambios y mejoras:
Habilitación de Application Insights cuando DAB de autohospedaje
Los registros ahora se pueden transmitir a Application Insights para obtener una mejor experiencia de supervisión y depuración, especialmente cuando data API Builder se implementa en Azure. Se puede agregar una nueva telemetry
sección al archivo de configuración para habilitar y configurar la integración con 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
}
}
Lea todos los detalles de la página de documentación Uso de Application Insights .
Compatibilidad para omitir campos extraños en el cuerpo de la solicitud REST
Con la nueva request-body-strict
opción, ahora puede decidir si tener un campo adicional en la carga de REST genera un error (comportamiento predeterminado, compatible con versiones anteriores) o si los campos adicionales se omiten silenciosamente.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Al establecer la request-body-strict
opción en false
, los campos que no tienen una asignación al objeto de base de datos relacionado se omiten sin generar ningún error.
Agregar el nombre de la aplicación para mssql
las conexiones
El generador de API de datos ahora inserta en la cadena de conexión, solo para mssql
los tipos de base de datos, el valor dab-<version>
como propiedad Application Name
, lo que facilita la identificación de las conexiones en el servidor de bases de datos. Si Application Name
ya está presente en la cadena de conexión, la versión del Generador de API de datos se anexa a ella.
Compatibilidad con time
el tipo de datos en mssql
time
el tipo de datos ahora se admite en mssql
las bases de datos.
Mutaciones en la tabla con desencadenadores para mssql
Las mutaciones ahora son totalmente compatibles con tablas con desencadenadores para mssql
bases de datos.
Impedir la actualización o inserción de campos de solo lectura en una tabla por parte del usuario
Detecte automáticamente los campos de solo lectura de la base de datos y evite la actualización o inserción de esos campos por usuario.
Novedades de la versión 0.8
Estos son los detalles sobre los cambios más relevantes y la mejora en Data API Builder 0.8.
Notas de la versión de GitHub
Revise estas páginas de versión para obtener una lista completa de todos los cambios y mejoras:
- 0.8.52: página de versión de GitHub
- 0.8.51: página de versión de GitHub
- 0.8.50: página de versión de GitHub
- 0.8.49: página de versión de GitHub
Se ha agregado compatibilidad con el archivo .env.
Las variables de entorno protegen los secretos de la exposición de texto sin formato y permiten el intercambio de valores en diferentes configuraciones. Sin embargo, estas variables deben establecerse en el ámbito del usuario o del equipo, lo que puede dar lugar a una variable entre proyectos "sangrado" si se duplican los nombres de variable. La mejor alternativa es los archivos de entorno. Para más información, consulte archivos de entorno en Data API Builder: blog.
Novedades de la versión 0.7.6
En este artículo se describen las notas de la versión de la versión 0.7.6.
Solicitudes de incorporación de cambios de GitHub
- Solucionar el problema de denegación de acceso de filtro para Cosmos
- Corrección de errores para la autenticación de campos de Azure Cosmos DB cuando graphql es "true", include es "*"
Compatibilidad inicial con la creación de documentos de descripción de OpenAPI v3-0-1
Data API Builder admite el estándar OpenAPI para generar y exponer documentos de descripción que contienen información útil sobre el servicio. Estos documentos se crean a partir del archivo de configuración en tiempo de ejecución y los metadatos de cada objeto de base de datos. Estos objetos están asociados a una entidad habilitada para REST definida en ese mismo archivo de configuración. A continuación, se exponen a través de una interfaz de usuario y están disponibles como un archivo serializado.
Para obtener más información sobre los detalles de OpenAPI y Data API Builder, consulte OpenAPI.
Permitir la fusión de archivos de configuración
Agrega la capacidad de combinar automáticamente dos archivos de configuración.
Es posible mantener varios pares de archivos de configuración específicos de línea base y entorno para simplificar la administración de la configuración específica del entorno. Por ejemplo, es posible mantener configuraciones independientes para desarrollo y producción. Este paso implica tener un archivo de configuración base que tenga todas las opciones comunes entre los distintos entornos. A continuación, establezca la DAB_ENVIRONMENT
variable que es posible controlar qué archivos de configuración se combinarán para su consumo por el generador de Data API.
Para más información, consulte Referencia de la CLI.
Ejecución de mutación de GraphQL y REST en una transacción
Data API Builder crea transacciones de base de datos para ejecutar determinados tipos de solicitudes graphQL y REST.
Hay muchas solicitudes, que implican realizar más de una consulta de base de datos para realizar. Por ejemplo, para devolver los resultados de una actualización, primero se debe realizar una consulta para la actualización y, a continuación, se deben leer los nuevos valores antes de devolverse. Cuando una solicitud requiere que se ejecuten varias consultas de base de datos, data API Builder ejecuta ahora estas consultas de base de datos dentro de una sola transacción.
Puede obtener más información sobre esta funcionalidad en el contexto de REST en la documentación de REST y de GraphQL en la documentación de GraphQL.
Novedades de la versión 0.6.14
En este artículo se describe la revisión de la versión de marzo de 2023 para Data API Builder para Azure Databases.
Correcciones de errores
- Solucione el problema de acceso denegado del filtro de consulta para Cosmos.
- Cosmos DB no admite actualmente la autorización de nivel de campo, para evitar la situación en la que los usuarios pasan accidentalmente los
field
permisos en la configuración en tiempo de ejecución, hemos agregado una comprobación de validación.
Novedades de la versión 0.6.13
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Nuevo comando de la CLI para exportar el esquema graphQL
Se agrega una nueva opción para exportar el esquema GraphQL. Se inicia el servidor DAB y, a continuación, se consulta para obtener el esquema antes de escribirlo en la ubicación proporcionada.
dab export --graphql -c dab-config.development.json -o ./schemas
Este comando genera el archivo de esquema GraphQL en el directorio ./schemas. La ruta de acceso al archivo de configuración es un parámetro opcional, que tiene como valor predeterminado "dab-config.json" a menos que "dab-config".<>DAB_ENVIRONMENT.json existe, donde DAB_ENVIRONMENT es una variable de entorno.
Compatibilidad de directivas de base de datos para crear acciones para MsSql
Las directivas de base de datos ahora se admiten para todas las operaciones CRUD (Crear, Leer, Actualizar, Eliminar) para MsSql. Por ejemplo:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
La configuración anterior de Revenue
la entidad indica que el usuario que está realizando una operación de inserción con el rol Authenticated
no puede crear un registro con ingresos inferiores o iguales a cero.
Capacidad de configurar la ruta de acceso de GraphQL y deshabilitar los puntos de conexión REST y GraphQL globalmente a través de la CLI
Ahora se admiten tres opciones más para el init
comando:
graphql.path
: para proporcionar la ruta de acceso personalizada de GraphQLrest.disabled
: para deshabilitar los puntos de conexión REST globalmentegraphql.disabled
: para deshabilitar los puntos de conexión de GraphQL globalmente
Por ejemplo, un init
comando generaría un archivo de configuración con una sección en tiempo de ejecución:
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 clave obligatorios para agregar y actualizar vistas en la CLI
Ahora es obligatorio que el usuario proporcione los campos clave (que se usarán como clave principal) a través de la opción source.key-fields
expuesta siempre que agregue una nueva vista de base de datos (a través de ) a la configuración a través dab add
de la CLI. Además, siempre que actualice algo en la configuración de la vista (a través de ) en el archivo de configuración a través dab update
de la CLI, si la actualización cambia algo relacionado con la definición de la vista en la base de datos subyacente (por ejemplo, tipo de origen, campos de clave), es obligatorio especificar también los campos clave en el comando update.
Sin embargo, todavía se admiten vistas sin tener claves principales explícitas especificadas en la configuración, pero la configuración de dichas vistas debe escribirse directamente en el archivo de configuración.
Por ejemplo, se usa un dab add
comando para agregar una vista:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Este comando genera la configuración de books_view
la entidad que es similar a la de este ejemplo:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Reemplazo del vínculo de Almacenamiento de Azure con vínculos de GitHub
Dado que DAB ahora tiene código abierto, no es necesario descargar los artefactos de la cuenta de almacenamiento. En su lugar, podemos descargarlos directamente desde GitHub. Por lo tanto, los vínculos se actualizan en consecuencia.
Novedades de la versión 0.5.34
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Respetar la marca habilitada para REST y GraphQL en el nivel de tiempo de ejecución
Se agrega una nueva opción para permitir la habilitación o deshabilitación de solicitudes REST/GraphQL para todas las entidades en el nivel de tiempo de ejecución. Si se deshabilita globalmente, no se podrá acceder a ninguna entidad a través de solicitudes REST o GraphQL independientemente de la configuración de entidad individual. Si se habilita globalmente, las entidades individuales son accesibles de forma predeterminada a menos que la configuración del nivel de entidad la deshabilite explícitamente.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
Identificador de correlación en los registros de solicitudes
Para ayudar a la depuración, adjuntamos un identificador de correlación a los registros que se generan durante una solicitud. Dado que se pueden realizar muchas solicitudes, es importante tener una manera de identificar los registros en una solicitud específica para ayudar al proceso de depuración.
Compatibilidad de operaciones con caracteres comodín para procedimientos almacenados en el motor y la CLI
En el caso de los procedimientos almacenados, los roles ahora se pueden configurar con la acción comodín *
, pero solo se expande a la execute
acción.
Novedades de la versión 0.5.32
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Capacidad de personalizar la ruta de acceso de rest a través de la CLI
Se introduce una nueva opción --rest.path
en el init
comando para personalizar la ruta de acceso de las API REST.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Este comando configura los puntos de conexión REST con un prefijo de rest-api
. La ruta de acceso completa para los puntos de conexión REST es https://<dab-server>/rest-api/<entity-name>
Cuando --rest.path
no se usa la opción , los puntos de conexión REST se configuran con el prefijo api
predeterminado . La ruta de acceso completa en este caso es https://<dab-server>/api/<entity-name>
Imagen de contenedor de Data API Builder en MAR
Las imágenes oficiales de Docker para Data API Builder para Azure Databases ya están disponibles en El Registro de artefactos de Microsoft.
Para obtener instrucciones para usar las imágenes publicadas, consulte Microsoft Container Registry - Data API Builder.
Compatibilidad con fragmentos de GraphQL
Los fragmentos son parte reutilizable de una consulta graphQL. En escenarios en los que se deben consultar los mismos campos en consultas diferentes, los campos repetidos se pueden consolidar en un único componente reutilizable denominado fragmento.
Para obtener más información sobre los fragmentos, consulte Consultas de GraphQL.
Un fragmento llamado description
en el tipo Character
se define a continuación:
fragment description on Character {
name
homePlanet
primaryFunction
}
Una consulta graphQL que use el fragmento definido se puede construir como se muestra aquí:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Para la consulta anterior, el resultado contiene los campos siguientes:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
Activar BinSkim y corregir alertas de Policheck
BinSkim es un detector portátil ligero ejecutable (PE) que valida la configuración del compilador/vinculador y otras características binarias pertinentes para la seguridad. Se agrega una tarea de canalización en static-tools
la canalización para realizar exámenes binSkim con cada ejecución de canalización. El sistema PoliCheck es un conjunto de herramientas y datos que ayudan a cumplir con el requisito de revisión de texto y código, como parte de la directiva global de preparación global. Las alertas generadas por los exámenes de Policheck se fijan para que sean compatibles con los términos confidenciales.
Novedades de la versión 0.5.0
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Esquema JSON público
El esquema JSON público proporciona compatibilidad con "intellisense", si usa un IDE como Visual Studio Code que admite esquemas JSON. El basic-empty-dab-config.json
archivo de la samples
carpeta tiene un punto de partida de ejemplo al crear manualmente el dab-config.json
archivo.
NuGet público Microsoft.DataApiBuilder
Microsoft.DataApiBuilder
ahora está disponible como un paquete NuGet público aquí para facilitar la instalación mediante la herramienta dotnet de la siguiente manera:
dotnet tool install --global Microsoft.DataApiBuilder
Nueva execute
acción para procedimientos almacenados en Azure SQL
Una nueva execute
acción se introduce como la única acción permitida en la permissions
sección del archivo de configuración solo cuando un tipo de origen respalda una entidad de stored-procedure
. De forma predeterminada, solo POST
se permite el método para estas entidades y solo se configura la operación GraphQL mutation
con el prefijo execute
agregado a su nombre. Especificar explícitamente el permitido methods
en la rest
sección del archivo de configuración invalida este comportamiento. De forma similar, para GraphQL, en operation
la graphql
sección , se puede invalidar para que sea query
en su lugar. Para obtener más información, consulte vistas y procedimientos almacenados.
Nueva mappings
sección
En la mappings
sección de cada entity
, las asignaciones entre los nombres de campo de objeto de base de datos y sus nombres de campo expuestos correspondientes se definen para los puntos de conexión de GraphQL y REST.
El formato es:
<database_field>: <entity_field>
Por ejemplo:
"mappings":{
"title": "descriptions",
"completed": "done"
}
El title
campo del objeto de base de datos relacionado se asigna al description
campo en el tipo GraphQL o en la carga de solicitud y respuesta de REST.
Compatibilidad con el contexto de sesión en Azure SQL
Para habilitar una capa adicional de seguridad (por ejemplo, Seguridad de nivel de fila (RLS),DAB ahora admite el envío de datos a la base de datos de Sql Server subyacente a través de SESSION_CONTEXT. Para obtener más información, consulte este documento detallado sobre SESSION_CONTEXT: Runtime to Database Authorization.
Compatibilidad con el filtro en objetos anidados dentro de un documento en PostgreSQL
Con PostgreSQL, ahora puede usar la relación de objeto o matriz definida en el esquema, lo que permite realizar operaciones de filtro en los objetos anidados, al igual que Azure SQL.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Compatibilidad con la lista escalar en NoSQL de Cosmos DB
La capacidad de consultar List
escalares ahora se agrega para Cosmos DB.
Tenga en cuenta esta definición de tipo.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Ahora es posible ejecutar una consulta que capture una lista como, por ejemplo,
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Compatibilidad mejorada con el registro mediante el nivel de registro
- Los niveles de registro predeterminados para el motor cuando
host.mode
seProduction
Development
actualizan a y se actualizan aError
yDebug
respectivamente. - Durante el inicio del motor, para cada columna de una entidad, se registra información como los nombres de campo expuestos y la clave principal. Este comportamiento se produce incluso cuando la asignación de campos se genera automáticamente.
- En el escenario de ejecución local, todas las consultas que se generan y ejecutan durante el inicio del motor se registran en el
Debug
nivel. - Para cada entidad, se registran campos de relación como
source.fields
,target.fields
ycardinality
. Si hay relaciones de varios, ,linking.object
linking.source.fields
ylinking.target.fields
se deducen de la base de datos (o del archivo de configuración) se registran. - Para cada solicitud entrante, se registran el rol y el estado de autenticación de la solicitud.
- En la CLI, la
Microsoft.DataAPIBuilder
versión se registra junto con los registros asociados a la ejecución del comando correspondiente.
CLI actualizada
--no-https-redirect
la opción se agrega alstart
comando . Con esta opción, se puede evitar el redireccionamiento automático de solicitudes dehttp
ahttps
.En MsSql, el contexto de sesión se puede habilitar mediante
--set-session-context true
en elinit
comando . En este ejemplo se muestra un comando de ejemplo:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Los detalles de autenticación, como el proveedor, la audiencia y el emisor se pueden configurar mediante las opciones
--auth.provider
,--auth.audience
y--auth.issuer.
en elinit
comando . En este ejemplo se muestra un comando de ejemplo:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Mensajería de errores fácil de usar cuando no se especifica el nombre de la entidad.
Novedades de la versión 0.4.11
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Esquema JSON actualizado para la data-source
sección
La data-source
sección del archivo de configuración se actualiza para que sea coherente en todas las bases de datos admitidas, pero permite que cada base de datos tenga configuraciones personalizadas. Se presenta una nueva sección options
para agrupar todas las propiedades específicas de una base de datos. Por ejemplo:
{
"$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;"
}
}
Los elementos disponibles en la options
sección dependen del elegido database-type
.
Compatibilidad con el filtrado en objetos anidados dentro de un documento en Azure SQL y SQL Server
Con Azure SQL y SQL Server, puede usar la relación de objeto o matriz definida en el esquema, lo que permite realizar operaciones de filtro en los objetos anidados.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Compatibilidad mejorada con procedimientos almacenados
Compatibilidad completa con el procedimiento almacenado en REST y GraphQL. El procedimiento almacenado con parámetros ahora es compatible con el 100 %. Consulte la documentación de Procedimientos almacenados para aprender a usar Data API Builder con procedimientos almacenados.
Nuevo database-type
valor cambiado para Cosmos DB
Se ha agregado compatibilidad con la API de PostgreSQL con Cosmos DB. Con una sección consolidada data-source
, el atributo database-type
denota el tipo de base de datos. Dado que Cosmos DB admite varias API, los tipos de base de datos admitidos actualmente son cosmosdb_nosql
y cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
Cambio de nombre de las propiedades de la CLI para cosmosdb_nosql
Después de los cambios de configuración descritos en las secciones anteriores, ahora se cambia el nombre de las propiedades de la CLI en consecuencia como cosmosdb_nosql-database
y cosmosdb_nosql-container
para la API NoSQL de 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"
Identidad administrada ahora compatible con Postgres
Ahora, el usuario también puede especificar el token de acceso en la configuración para autenticarse con una identidad administrada. Como alternativa, ahora el usuario no puede especificar la contraseña en la cadena de conexión y el tiempo de ejecución intenta capturar el token de identidad administrada predeterminado. Si se produce un error, la conexión se intenta sin una contraseña en la cadena de conexión.
Compatibilidad con la autenticación de usuario de Microsoft Entra ID para Azure MySQL
Se ha agregado el token de usuario como campo de contraseña para autenticarse con MySQL con el complemento Microsoft Entra ID.
Novedades de la versión 0.3.7
La lista completa de notas de la versión de esta versión está disponible en GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Ver compatibilidad
Las vistas ahora se admiten tanto en REST como en GraphQL. Si tiene una vista, por ejemplo dbo.vw_books_details
, se puede exponer mediante el siguiente dab
comando:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
La source.key-fields
opción se usa para especificar qué campos de la vista se usan para identificar de forma única un elemento, de modo que la navegación por clave principal también se pueda implementar para las vistas. Es responsabilidad del desarrollador configurar DAB para habilitar o deshabilitar acciones (por ejemplo, la create
acción) en función de si la vista es actualizable o no.
Compatibilidad con procedimientos almacenados
Los procedimientos almacenados ahora se admiten para las solicitudes REST. Si tiene un procedimiento almacenado, por ejemplo dbo.stp_get_all_cowritten_books_by_author
, se puede exponer mediante el siguiente dab
comando:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
El parámetro se puede pasar en la cadena de consulta de dirección URL al llamar al punto de conexión REST:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Nota
Es responsabilidad del desarrollador configurar DAB para habilitar o deshabilitar acciones (por ejemplo, la create
acción) para permitir o denegar verbos HTTP específicos al llamar al procedimiento almacenado. Por ejemplo, para el procedimiento almacenado usado en el ejemplo, dado que su propósito es devolver algunos datos, tendría sentido permitir solo la read
acción.
Autenticación de Id. de Entra de Microsoft
La autenticación de Id. de Entra de Microsoft funciona totalmente. Para obtener más información, consulte autenticación con microsoft Entra ID.
Nuevo proveedor de autenticación del simulador para la autenticación local
Para simplificar las pruebas de solicitudes autenticadas al desarrollar localmente, hay disponible un nuevo simulator
proveedor de autenticación. El proveedor es un proveedor simulator
de autenticación configurable, que indica al motor del Generador de API de datos que trate todas las solicitudes como autenticadas. Más detalles aquí: Autenticación local
Compatibilidad con el filtrado en objetos anidados dentro de un documento en Azure Cosmos DB
Con Azure Cosmos DB, puede usar la relación de objeto o matriz definida en el esquema, lo que permite realizar operaciones de filtro en los objetos anidados.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}