Compartir a través de


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:

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

  1. Validación de esquemas
  2. Validación de propiedades de configuración
  3. Validación de permisos de configuración
  4. Validación de la conexión de base de datos
  5. Validación de metadatos de entidades

Características en vista previa

  • Compatibilidad inicial con DWSQL. #1864
  • Compatibilidad con varios orígenes de datos. #1709

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:

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

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 GraphQL
  • rest.disabled: para deshabilitar los puntos de conexión REST globalmente
  • graphql.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 addde 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 updatede 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
    }

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 apipredeterminado . 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 se ProductionDevelopment actualizan a y se actualizan a Error y Debug 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.fieldsy cardinality . Si hay relaciones de varios, , linking.objectlinking.source.fieldsy linking.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 al start comando . Con esta opción, se puede evitar el redireccionamiento automático de solicitudes de http a https .

  • En MsSql, el contexto de sesión se puede habilitar mediante --set-session-context true en el init 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.audiencey --auth.issuer. en el init 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
  }
}