Wat is er nieuw in versie 0.11 en eerder
Releaseopmerkingen en informatie over alle updates en verbeteringen in Data API Builder versie 0.11 en eerder.
Wat is er nieuw in versie 0.11
Releaseopmerkingen en informatie over de updates en verbeteringen in Data API Builder versie 0.10.
GraphQL-ondersteuning voor SQL Data Warehouse
SQL Data Warehouse ondersteunt nu GraphQL-eindpunten.
Verbeterde Azure Cosmos DB voor NoSQL-filtering
Azure Cosmos DB voor NoSQL biedt nu ondersteuning voor geneste filters, id-variabelen en zoekopdrachten in tekenreeksmatrix met de contains
operator.
Het verzamelen van toepassingsgegevens inschakelen met de opdrachtregelinterface
U kunt nu de DAB-opdrachtregelinterface (CLI) gebruiken om gegevensverzameling in te schakelen met Application Insights.
Wat is er nieuw in versie 0.10
Releaseopmerkingen en informatie over de updates en verbeteringen in Data API Builder versie 0.10.
Onze focus verschuift naar stabiliteit wanneer we algemene beschikbaarheid naderen. Hoewel niet alle inspanningen op het gebied van codekwaliteit en enginestabiliteit in dit artikel worden beschreven, worden in deze lijst belangrijke updates gemarkeerd.
GitHub-releaseopmerkingen
Bekijk deze releasepagina's voor een uitgebreide lijst met alle wijzigingen en verbeteringen:
- 2024-02-06 - Versie 0.10.23
- 2024-01-31 - Versie 0.10.21
- 2023-12-07 - Versie 0.10.11
In cachegeheugen opslaan
Versie 0.10 introduceert in-memory caching voor REST- en GraphQL-eindpunten. Deze functie, ontworpen voor interne caching, vormt de basis voor toekomstige gedistribueerde caching. In-memory caching vermindert de databasebelasting van terugkerende query's.
Scenario's voor opslaan in cache
- Databasebelasting verminderen: Cache slaat resultaten van dure query's op, waardoor herhaalde database-aanroepen niet meer nodig zijn.
- Schaalbaarheid van API's verbeteren: caching biedt ondersteuning voor frequentere API-aanroepen zonder dat de databaseaanvragen toenemen, waardoor de mogelijkheden van uw API aanzienlijk worden geschaald.
Wijzigingen in de configuratie
Cache-instellingen zijn beschikbaar in de runtime
sectie en voor elke entiteit, met gedetailleerde controle.
Runtime-instellingen:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Caching is standaard uitgeschakeld.
- De standaard time-to-live (TTL) is 5 seconden.
Entiteitsinstellingen:
{
"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
}
}
}
Configuratievalidatie in CLI
De CLI ondersteunt dab validate
nu het controleren van configuratiebestanden op fouten of inconsistenties, waardoor de ontwikkelwerkstroom wordt verbeterd.
Validatiestappen
- Schemavalidatie
- Validatie van configuratie-eigenschappen
- Validatie van configuratiemachtiging
- Validatie van databaseverbinding
- Validatie van metagegevens van entiteiten
Preview-functies
Wat is er nieuw in versie 0.9
Hier volgen de details van de meest relevante wijzigingen en verbeteringen in Data API Builder 0.9.
GitHub-releaseopmerkingen
Bekijk deze releasepagina's voor een uitgebreide lijst met alle wijzigingen en verbeteringen:
Application Insights inschakelen bij zelf-hostende DAB
Logboeken kunnen nu worden gestreamd naar Application Insights voor een betere bewakings- en foutopsporingservaring, met name wanneer Data API Builder wordt geïmplementeerd in Azure. Er kan een nieuwe telemetry
sectie worden toegevoegd aan het configuratiebestand om integratie met Application Insights in te schakelen en te configureren:
"telemetry": {
"application-insights": {
"enabled": true, // To enable/disable application insights telemetry
"connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
}
}
Lees alle details op de pagina Application Insights-documentatie gebruiken.
Ondersteuning voor het negeren van overbodige velden in de hoofdtekst van de REST-aanvraag
Met de nieuwe request-body-strict
optie kunt u nu bepalen of een extra veld in de REST-nettolading een fout genereert (standaardgedrag, compatibel met eerdere versies) of dat de extra velden op de achtergrond worden genegeerd.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Door de request-body-strict
optie in te stellen op false
, worden velden die geen toewijzing aan het gerelateerde databaseobject hebben, genegeerd zonder dat er een fout wordt gegenereerd.
Toepassingsnaam toevoegen voor mssql
verbindingen
Data API Builder injecteert nu in de verbindingsreeks, alleen voor mssql
databasetypen, de waarde dab-<version>
als de Application Name
eigenschap, waardoor de verbindingen op de databaseserver gemakkelijker kunnen worden geïdentificeerd. Als Application Name
al aanwezig is in de verbindingsreeks, wordt de versie van de Data API Builder eraan toegevoegd.
Gegevenstype ondersteuning time
in mssql
time
gegevenstype wordt nu ondersteund in mssql
databases.
Mutaties op tafel met triggers voor mssql
Mutaties worden nu volledig ondersteund op tabellen met triggers voor mssql
databases.
Voorkomen dat velden met het kenmerk Alleen-lezen in een tabel worden bijgewerkt/ingevoegd door de gebruiker
Automatisch alleen-lezen velden in de database detecteren en voorkomen dat deze velden door de gebruiker worden bijgewerkt/ingevoegd.
Wat is er nieuw in versie 0.8
Hier volgen de details van de meest relevante wijzigingen en verbeteringen in Data API Builder 0.8.
GitHub-releaseopmerkingen
Bekijk deze releasepagina's voor een uitgebreide lijst met alle wijzigingen en verbeteringen:
- 0.8.52: GitHub-releasepagina
- 0.8.51: GitHub-releasepagina
- 0.8.50: GitHub-releasepagina
- 0.8.49: GitHub-releasepagina
Ondersteuning toegevoegd voor .env-bestand
Omgevingsvariabelen beschermen geheimen tegen blootstelling van tekst zonder opmaak en maken het mogelijk om waarde te wisselen in verschillende instellingen. Deze variabelen moeten echter worden ingesteld in het bereik van de gebruiker of computer, wat kan leiden tot 'bloeden' van de variabele tussen projecten als namen van variabelen worden gedupliceerd. Het betere alternatief zijn omgevingsbestanden. Zie omgevingsbestanden in Data API Builder - blog voor meer informatie.
Wat is er nieuw in versie 0.7.6
In dit artikel worden de releaseopmerkingen voor versie 0.7.6 beschreven.
GitHub-pull-aanvragen
- Probleem met weigeren van filtertoegang voor Cosmos oplossen
- Opgeloste fout voor Azure Cosmos DB-veldverificatie wanneer graphql 'true' is, include is '*'
Initiële ondersteuning voor het maken van een beschrijvingsdocument voor OpenAPI v3-0-1
Data API Builder ondersteunt de OpenAPI-standaard voor het genereren en weergeven van beschrijvingsdocumenten die nuttige informatie over de service bevatten. Deze documenten worden gemaakt op basis van het runtimeconfiguratiebestand en de metagegevens voor elk databaseobject. Deze objecten zijn gekoppeld aan een entiteit met REST die is gedefinieerd in hetzelfde configuratiebestand. Ze worden vervolgens weergegeven via een gebruikersinterface en beschikbaar gesteld als een geserialiseerd bestand.
Zie OpenAPI voor meer informatie over de specifieke kenmerken van OpenAPI en Data API Builder.
Samenvoeging van configuratiebestanden toestaan
Hiermee wordt de mogelijkheid toegevoegd om twee configuratiebestanden automatisch samen te voegen.
Het is mogelijk om meerdere paren van basislijn- en omgevingsspecifieke configuratiebestanden te onderhouden om het beheer van de omgevingsspecifieke instellingen te vereenvoudigen. Het is bijvoorbeeld mogelijk om afzonderlijke configuraties te onderhouden voor ontwikkeling en productie. Deze stap omvat het hebben van een basisconfiguratiebestand met alle algemene instellingen tussen de verschillende omgevingen. Vervolgens kunt u door het instellen van de DAB_ENVIRONMENT
variabele bepalen welke configuratiebestanden moeten worden samengevoegd voor gebruik door Data API Builder.
Zie CLI-naslaginformatie voor meer informatie.
GraphQL- en REST-mutaties uitvoeren in een transactie
Data API Builder maakt databasetransacties om bepaalde typen GraphQL- en REST-aanvragen uit te voeren.
Er zijn veel aanvragen, waarbij meer dan één databasequery moet worden uitgevoerd. Als u bijvoorbeeld de resultaten van een update wilt retourneren, moet er eerst een query voor de update worden uitgevoerd en vervolgens moeten de nieuwe waarden worden gelezen voordat ze worden geretourneerd. Wanneer voor een aanvraag meerdere databasequery's nodig zijn om uit te voeren, voert Data API Builder deze databasequery's nu uit binnen één transactie.
U kunt meer over deze mogelijkheid lezen in de context van REST in de REST-documentatie en van GraphQL in de GraphQL-documentatie.
Wat is er nieuw in versie 0.6.14
In dit artikel wordt de patch voor de release van maart 2023 voor Data API Builder voor Azure Databases beschreven.
Opgeloste fouten
- Probleem met geweigerde toegang tot queryfilters voor Cosmos oplossen.
- Cosmos DB biedt momenteel geen ondersteuning voor autorisatie op veldniveau. Om te voorkomen dat de gebruikers per ongeluk de machtigingen in de
field
runtimeconfiguratie doorgeven, hebben we een validatiecontrole toegevoegd.
Wat is er nieuw in versie 0.6.13
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Nieuwe CLI-opdracht voor het exporteren van Het GraphQL-schema
Er wordt een nieuwe optie toegevoegd om het GraphQL-schema te exporteren. Hiermee start u de DAB-server en voert u vervolgens een query uit om het schema op te halen voordat u deze naar de opgegeven locatie schrijft.
dab export --graphql -c dab-config.development.json -o ./schemas
Met deze opdracht wordt het GraphQL-schemabestand gegenereerd in de map ./schemas. Het pad naar het configuratiebestand is een optionele parameter, die standaard wordt ingesteld op 'dab-config.json', tenzij 'dab-config'.<>DAB_ENVIRONMENT.json bestaat, waarbij DAB_ENVIRONMENT een omgevingsvariabele is.
Ondersteuning voor databasebeleid voor het maken van actie voor MsSql
Databasebeleid wordt nu ondersteund voor alle CRUD-bewerkingen (Maken, Lezen, Bijwerken, Verwijderen) voor MsSql. Bijvoorbeeld:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
De vorige configuratie voor Revenue
de entiteit geeft aan dat de gebruiker die een invoegbewerking met de rol Authenticated
uitvoert, geen record mag maken met een omzet van minder dan of gelijk aan nul.
Mogelijkheid om GraphQL-pad te configureren en REST- en GraphQL-eindpunten wereldwijd uit te schakelen via CLI
We ondersteunen nu nog drie opties voor de init
opdracht:
graphql.path
: aangepast GraphQL-pad opgevenrest.disabled
: REST-eindpunten globaal uitschakelengraphql.disabled
: GraphQL-eindpunten globaal uitschakelen
Met een init
opdracht wordt bijvoorbeeld een configuratiebestand met een runtimesectie gegenereerd:
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"
},
}
Sleutelvelden die verplicht zijn voor het toevoegen en bijwerken van weergaven in CLI
Het is nu verplicht voor de gebruiker om de sleutelvelden op te geven (te gebruiken als primaire sleutel) via de weergegeven optie source.key-fields
wanneer een nieuwe databaseweergave (via dab add
) wordt toegevoegd aan de configuratie via CLI. Wanneer u iets in de configuratie van de weergave bijwerkt (via ) in het configuratiebestand via CLI, is het ook verplicht om de sleutelvelden in de updateopdracht op te geven in de updateopdracht wanneer u iets in de configuratie van de weergave bijwerkt (via dab update
) in het configuratiebestand.
We ondersteunen echter nog steeds weergaven zonder dat er expliciete primaire sleutels zijn opgegeven in de configuratie, maar de configuratie voor dergelijke weergaven moet rechtstreeks in het configuratiebestand worden geschreven.
Er wordt bijvoorbeeld een dab add
opdracht gebruikt om een weergave toe te voegen:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Met deze opdracht wordt de configuratie voor books_view
de entiteit gegenereerd die lijkt op dit voorbeeld:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Azure Storage-koppeling vervangen door GitHub-koppelingen
Omdat DAB nu open source is, hoeven we de artefacten niet te downloaden uit het opslagaccount. In plaats daarvan kunnen we ze rechtstreeks downloaden van GitHub. Daarom worden de koppelingen dienovereenkomstig bijgewerkt.
Wat is er nieuw in versie 0.5.34
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Vlag voor REST en GraphQL op runtimeniveau honoreert
Er wordt een nieuwe optie toegevoegd om REST/GraphQL-aanvragen in of uit te schakelen voor alle entiteiten op runtimeniveau. Als deze functie globaal wordt uitgeschakeld, zijn er geen entiteiten toegankelijk via REST- of GraphQL-aanvragen, ongeacht de instellingen van de afzonderlijke entiteit. Als deze functie globaal is ingeschakeld, zijn afzonderlijke entiteiten standaard toegankelijk, tenzij deze expliciet is uitgeschakeld door de instellingen op entiteitsniveau.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
Correlatie-id in aanvraaglogboeken
Om foutopsporing te helpen, voegen we een correlatie-id toe aan logboeken die tijdens een aanvraag worden gegenereerd. Omdat er mogelijk veel aanvragen worden gedaan, is het belangrijk om de logboeken voor een specifieke aanvraag te identificeren om het foutopsporingsproces te helpen.
Ondersteuning voor jokertekenbewerkingen voor opgeslagen procedures in engine en CLI
Voor opgeslagen procedures kunnen rollen nu worden geconfigureerd met de jokertekenactie *
, maar deze wordt alleen uitgebreid naar de execute
actie.
Wat is er nieuw in versie 0.5.32
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Mogelijkheid om het restpad aan te passen via CLI
Er is een nieuwe optie --rest.path
geïntroduceerd in de init
opdracht om het pad voor REST API's aan te passen.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Met deze opdracht worden de REST-eindpunten geconfigureerd met het voorvoegsel .rest-api
Het volledige pad voor de REST-eindpunten is https://<dab-server>/rest-api/<entity-name>
Wanneer --rest.path
de optie niet wordt gebruikt, worden de REST-eindpunten geconfigureerd met het standaardvoorvoegsel api
. Het volledige pad in dit geval is https://<dab-server>/api/<entity-name>
Containerinstallatiekopieën van Data API Builder in MAR
De officiële docker-installatiekopieën voor Data API Builder voor Azure Databases zijn nu beschikbaar in Microsoft Artifact Registry.
Zie Microsoft Container Registry - Data API builder voor instructies voor het gebruik van de gepubliceerde installatiekopieën.
Ondersteuning voor GraphQL-fragmenten
Fragmenten zijn herbruikbaar onderdeel van een graphQL-query. In scenario's waarin dezelfde velden in verschillende query's moeten worden opgevraagd, kunnen de herhaalde velden worden samengevoegd tot één herbruikbaar onderdeel met de naam fragment.
Zie GraphQL-query's voor meer informatie over fragmenten.
Hierna wordt een fragment met de naam description
voor het type Character
gedefinieerd:
fragment description on Character {
name
homePlanet
primaryFunction
}
U kunt een GraphQL-query maken die gebruikmaakt van het gedefinieerde fragment, zoals hier wordt geïllustreerd:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Voor de vorige query bevat het resultaat de volgende velden:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
BinSkim inschakelen en Policheck-waarschuwingen herstellen
BinSkim is een portable executable (PE) lichtgewicht scanner die compiler-/linkerinstellingen en andere beveiligingsgerelateerde binaire kenmerken valideert. Er wordt een pijplijntaak in static-tools
de pijplijn toegevoegd om BinSkim-scans uit te voeren bij elke pijplijnuitvoering. Het PoliCheck-systeem is een set hulpprogramma's en gegevens die helpen om te voldoen aan de vereisten voor tekst- en codebeoordeling, als onderdeel van het algemene beleid voor wereldwijde gereedheid. De waarschuwingen die door Policheck-scans worden gegenereerd, zijn zo ingesteld dat ze compatibel zijn met betrekking tot gevoelige termen.
Wat is er nieuw in versie 0.5.0
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Openbaar JSON-schema
Het openbare JSON-schema biedt ondersteuning voor 'intellisense' als u een IDE zoals Visual Studio Code gebruikt die ondersteuning biedt voor JSON-schema's. Het basic-empty-dab-config.json
bestand in de samples
map heeft een voorbeeld van een beginpunt bij het handmatig maken van het dab-config.json
bestand.
Openbare Microsoft.DataApiBuilder
NuGet
Microsoft.DataApiBuilder
is nu als volgt beschikbaar als een openbaar NuGet-pakket voor eenvoudige installatie met het dotnet-hulpprogramma:
dotnet tool install --global Microsoft.DataApiBuilder
Nieuwe execute
actie voor opgeslagen procedures in Azure SQL
Een nieuwe execute
actie wordt alleen geïntroduceerd als de enige toegestane actie in de permissions
sectie van het configuratiebestand wanneer een brontype een entiteit van stored-procedure
ondersteunt. Standaard is alleen POST
de methode toegestaan voor dergelijke entiteiten en wordt alleen de GraphQL-bewerking mutation
geconfigureerd met het voorvoegsel execute
dat aan de naam wordt toegevoegd. Als u expliciet de toegestane methods
waarde opgeeft in de rest
sectie van het configuratiebestand, overschrijft dit gedrag. Op dezelfde manier kan voor GraphQL, de operation
in de graphql
sectie, worden overschreven om in plaats daarvan te worden query
overschreven. Zie weergaven en opgeslagen procedures voor meer informatie.
Nieuwe mappings
sectie
In de mappings
sectie onder elk entity
worden de toewijzingen tussen databaseobjectveldnamen en de bijbehorende weergegeven veldnamen gedefinieerd voor zowel GraphQL- als REST-eindpunten.
De indeling is:
<database_field>: <entity_field>
Bijvoorbeeld:
"mappings":{
"title": "descriptions",
"completed": "done"
}
Het title
veld in het gerelateerde databaseobject wordt toegewezen aan description
het veld in het GraphQL-type of in de nettolading van de REST-aanvraag en het antwoord.
Ondersteuning voor sessiecontext in Azure SQL
Als u een extra beveiligingslaag wilt inschakelen (bijvoorbeeld Beveiliging op rijniveau (RLS)), ondersteunt DAB nu het verzenden van gegevens naar de onderliggende Sql Server-database via SESSION_CONTEXT. Raadpleeg dit gedetailleerde document op SESSION_CONTEXT: Runtime naar databaseautorisatie voor meer informatie.
Ondersteuning voor filteren op geneste objecten in een document in PostgreSQL
Met PostgreSQL kunt u nu de object- of matrixrelatie gebruiken die is gedefinieerd in uw schema, waarmee filterbewerkingen op de geneste objecten kunnen worden uitgevoerd, net als in Azure SQL.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Scalaire lijst in Cosmos DB NoSQL ondersteunen
De mogelijkheid om een query uit te voeren List
op Scalars is nu toegevoegd voor Cosmos DB.
Houd rekening met dit typedefinitie.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Het is nu mogelijk om een query uit te voeren waarmee een lijst wordt opgehaald, zoals
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Verbeterde ondersteuning voor logboekregistratie met logboekniveau
- De standaardlogboekniveaus voor de engine wanneer
host.mode
en worden bijgewerkt naarError
respectievelijk enDebug
.Development
Production
- Tijdens het opstarten van de engine wordt voor elke kolom van een entiteit informatie vastgelegd, zoals weergegeven veldnamen en de primaire sleutel. Dit gedrag treedt zelfs op wanneer de veldtoewijzing automatisch wordt gegenereerd.
- In het lokale uitvoeringsscenario worden alle query's die worden gegenereerd en uitgevoerd tijdens het opstarten van de engine, geregistreerd op
Debug
niveau. - Voor elke entiteit worden relatievelden zoals
source.fields
,target.fields
encardinality
geregistreerd. Als er veel-op-veel-relaties zijn,linking.object
worden ,linking.source.fields
enlinking.target.fields
afgeleid van de database (of uit het configuratiebestand) geregistreerd. - Voor elke binnenkomende aanvraag worden de rol en de verificatiestatus van de aanvraag vastgelegd.
- In CLI wordt de
Microsoft.DataAPIBuilder
versie geregistreerd, samen met de logboeken die zijn gekoppeld aan de uitvoering van de betreffende opdracht.
Bijgewerkte CLI
--no-https-redirect
is toegevoegd aan destart
opdracht . Met deze optie kan de automatische omleiding van aanvragen vanhttp
naarhttps
worden voorkomen.In MsSql kan sessiecontext worden ingeschakeld met behulp van
--set-session-context true
in deinit
opdracht . In dit voorbeeld wordt een voorbeeldopdracht weergegeven:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Verificatiedetails zoals de provider, doelgroep en verlener kunnen worden geconfigureerd met behulp van de opties
--auth.provider
,--auth.audience
en--auth.issuer.
in deinit
opdracht . In dit voorbeeld wordt een voorbeeldopdracht weergegeven:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Gebruikersvriendelijke foutberichten wanneer de naam van de entiteit niet is opgegeven.
Wat is er nieuw in versie 0.4.11
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
JSON-schema bijgewerkt voor data-source
sectie
De data-source
sectie in het configuratiebestand wordt bijgewerkt om consistent te zijn voor alle ondersteunde databases, maar staat nog steeds toe dat elke database aangepaste configuraties heeft. Er wordt een nieuwe sectie options
geïntroduceerd om alle eigenschappen te groepeert die specifiek zijn voor een database. Bijvoorbeeld:
{
"$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;"
}
}
Welke elementen beschikbaar zijn in de options
sectie, is afhankelijk van de gekozen database-type
.
Ondersteuning voor filteren op geneste objecten in een document in Azure SQL en SQL Server
Met Azure SQL en SQL Server kunt u de object- of matrixrelatie gebruiken die is gedefinieerd in uw schema, waarmee u filterbewerkingen kunt uitvoeren op de geneste objecten.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Verbeterde ondersteuning voor opgeslagen procedures
Volledige ondersteuning voor opgeslagen procedure in REST en GraphQL. Opgeslagen procedure met parameters nu 100% ondersteund. Raadpleeg de documentatie over opgeslagen procedures voor meer informatie over het gebruik van Data API Builder met opgeslagen procedures.
Nieuwe database-type
waarde hernoemd voor Cosmos DB
We hebben ondersteuning toegevoegd voor PostgreSQL-API met Cosmos DB. Bij een geconsolideerde data-source
sectie geeft het kenmerk database-type
het type database aan. Omdat Cosmos DB meerdere API's ondersteunt, zijn cosmosdb_nosql
de momenteel ondersteunde databasetypen en cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
De naam van CLI-eigenschappen wijzigen voor cosmosdb_nosql
Na de configuratiewijzigingen die in de vorige secties zijn beschreven, worden de cli-eigenschappen nu dienovereenkomstig hernoemd als cosmosdb_nosql-database
en cosmosdb_nosql-container
voor Cosmos DB NoSQL API.
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"
Beheerde identiteit wordt nu ondersteund met Postgres
De gebruiker kan nu ook het toegangstoken opgeven in de configuratie om te verifiëren met een beheerde identiteit. Als alternatief kan de gebruiker nu het wachtwoord niet opgeven in de verbindingsreeks en probeert de runtime het standaardtoken voor beheerde identiteit op te halen. Als dit mislukt, wordt verbinding geprobeerd zonder wachtwoord in de verbindingsreeks.
Ondersteuning voor Microsoft Entra ID-gebruikersverificatie voor Azure MySQL
Gebruikerstoken toegevoegd als wachtwoordveld voor verificatie met MySQL met Microsoft Entra ID-invoegtoepassing.
Wat is er nieuw in versie 0.3.7
De volledige lijst met releaseopmerkingen voor deze versie is beschikbaar op GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Ondersteuning weergeven
Weergaven worden nu ondersteund in zowel REST als GraphQL. Als u een weergave hebt, kan deze bijvoorbeeld dbo.vw_books_details
worden weergegeven met behulp van de volgende dab
opdracht:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
De source.key-fields
optie wordt gebruikt om op te geven welke velden uit de weergave worden gebruikt om een item uniek te identificeren, zodat navigatie op primaire sleutel ook voor weergaven kan worden geïmplementeerd. Het is de verantwoordelijkheid van de ontwikkelaar die DAB configureert om acties in of uit te schakelen (bijvoorbeeld de create
actie), afhankelijk van of de weergave kan worden bijgewerkt of niet.
Ondersteuning voor opgeslagen procedures
Opgeslagen procedures worden nu ondersteund voor REST-aanvragen. Als u een opgeslagen procedure hebt, kan deze bijvoorbeeld dbo.stp_get_all_cowritten_books_by_author
worden weergegeven met behulp van de volgende dab
opdracht:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
De parameter kan worden doorgegeven in de URL-querytekenreeks bij het aanroepen van het REST-eindpunt:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Notitie
Het is de verantwoordelijkheid van de ontwikkelaar die DAB configureert om acties (bijvoorbeeld de create
actie) in of uit te schakelen om specifieke HTTP-woorden toe te staan of te weigeren bij het aanroepen van de opgeslagen procedure. Bijvoorbeeld, voor de opgeslagen procedure die in het voorbeeld wordt gebruikt, aangezien het doel ervan is om bepaalde gegevens te retourneren, zou het zinvol zijn om alleen de read
actie toe te staan.
Microsoft Entra ID-verificatie
Microsoft Entra ID-verificatie werkt nu volledig. Zie Verificatie met Microsoft Entra ID voor meer informatie.
Nieuwe simulatorverificatieprovider voor lokale verificatie
Om het testen van geverifieerde aanvragen bij het ontwikkelen lokaal te vereenvoudigen, is er een nieuwe simulator
verificatieprovider beschikbaar. De provider simulator
is een configureerbare verificatieprovider, die de engine van de Data API builder instrueert om alle aanvragen als geverifieerd te behandelen. Meer informatie vindt u hier: Lokale verificatie
Ondersteuning voor filteren op geneste objecten in een document in Azure Cosmos DB
Met Azure Cosmos DB kunt u de object- of matrixrelatie gebruiken die is gedefinieerd in uw schema, waarmee filterbewerkingen op de geneste objecten kunnen worden uitgevoerd.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}