Delen via


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:

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

  1. Schemavalidatie
  2. Validatie van configuratie-eigenschappen
  3. Validatie van configuratiemachtiging
  4. Validatie van databaseverbinding
  5. Validatie van metagegevens van entiteiten

Preview-functies

  • Initiële DWSQL-ondersteuning. #1864
  • Ondersteuning voor meerdere gegevensbronnen. #1709

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:

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

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 opgeven
  • rest.disabled: REST-eindpunten globaal uitschakelen
  • graphql.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
    }

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-procedureondersteunt. 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 entityworden 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 naar Error respectievelijk enDebug.DevelopmentProduction
  • 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.fieldsen cardinality geregistreerd. Als er veel-op-veel-relaties zijn, linking.objectworden , linking.source.fieldsen linking.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 de start opdracht . Met deze optie kan de automatische omleiding van aanvragen van http naar https worden voorkomen.

  • In MsSql kan sessiecontext worden ingeschakeld met behulp van --set-session-context true in de init 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.audienceen --auth.issuer. in de init 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
  }
}