Freigeben über


Neuerungen in Version 0.11 und früher

Versionshinweise und Informationen zu allen Updates und Verbesserungen in Data API Builder Version 0.11 und früher.

Neuerungen in Version 0.11

Versionshinweise und Informationen zu den Updates und Verbesserungen in Data API Builder Version 0.10.

GraphQL-Unterstützung für SQL Data Warehouse

SQL Data Warehouse unterstützt jetzt GraphQL-Endpunkte.

Erweiterte Azure Cosmos DB for NoSQL-Filterung

Azure Cosmos DB for NoSQL unterstützt jetzt geschachtelte Filter, ID-Variablen und Zeichenfolgenarraysuchen mit dem contains Operator.

Aktivieren der Anwendungsdatensammlung über die Befehlszeilenschnittstelle

Sie können jetzt die DAB-Befehlszeilenschnittstelle (CLI) verwenden, um die Datensammlung mit Application Insights zu aktivieren.

Neuerungen in Version 0.10

Versionshinweise und Informationen zu den Updates und Verbesserungen in Data API Builder Version 0.10.

Wir konzentrieren uns auf Stabilität, wenn wir uns der allgemeinen Verfügbarkeit nähern. In diesem Artikel werden zwar nicht alle Anstrengungen in Codequalität und Engine-Stabilität beschrieben, aber in dieser Liste werden wichtige Updates hervorgehoben.

GitHub-Versionshinweise

Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:

In-Memory-Caching

Version 0.10 führt die Speicherzwischenspeicherung für REST- und GraphQL-Endpunkte ein. Dieses Feature, das für die interne Zwischenspeicherung entwickelt wurde, legt die Grundlage für die zukünftige verteilte Zwischenspeicherung. Zwischenspeicherung im Arbeitsspeicher reduziert die Datenbanklast durch wiederholte Abfragen.

Zwischenspeicherungsszenarien

  • Reduzieren der Datenbanklast: Im Cache werden Ergebnisse teurer Abfragen gespeichert, sodass keine wiederholten Datenbankaufrufe erforderlich sind.
  • Verbessern der API-Skalierbarkeit: Zwischenspeicherung unterstützt häufigere API-Aufrufe ohne Erhöhung von Datenbankanforderungen, wodurch die Funktionen Ihrer API erheblich skaliert werden.

Konfigurationsänderungen

Die Zwischenspeicherungseinstellungen sind im runtime Abschnitt und für jede Entität verfügbar und bieten eine präzise Steuerung.

Laufzeiteinstellungen:

{
  "runtime": {
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}
  • Die Zwischenspeicherung ist standardmäßig deaktiviert.
  • Die Standardzeit (Time-to-Live, TTL) beträgt 5 Sekunden.

Entitätseinstellungen:

{
  "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
    }
  }
}

Konfigurationsüberprüfung in der CLI

Die CLI unterstützt jetzt die dab validate Überprüfung von Konfigurationsdateien auf Fehler oder Inkonsistenzen und verbessert den Entwicklungsworkflow.

Validierungsschritte

  1. Schemavalidierung
  2. Überprüfung der Konfigurationseigenschaften
  3. Überprüfung der Konfigurationsberechtigung
  4. Datenbankverbindungsüberprüfung
  5. Überprüfung von Entitätenmetadaten

Previewfunktionen

  • Anfängliche DWSQL-Unterstützung. #1864
  • Unterstützung für mehrere Datenquellen. #1709

Neuerungen in Version 0.9

Hier finden Sie die Details zu den wichtigsten Änderungen und Verbesserungen in Data API Builder 0.9.

GitHub-Versionshinweise

Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:

Aktivieren von Application Insights beim Selbsthosting von DAB

Protokolle können jetzt an Application Insights gestreamt werden, um die Überwachung und das Debuggen zu verbessern, insbesondere wenn der Daten-API-Generator in Azure bereitgestellt wird. Der Konfigurationsdatei kann ein neuer telemetry Abschnitt hinzugefügt werden, um die Integration mit Application Insights zu aktivieren und zu konfigurieren:

"telemetry": {
    "application-insights": {
    "enabled": true,    // To enable/disable application insights telemetry
    "connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
    }
}

Lesen Sie alle Details auf der Dokumentationsseite verwenden von Application Insights .

Unterstützung für das Ignorieren fremder Felder im REST-Anforderungstext

Mit der neuen request-body-strict Option können Sie jetzt entscheiden, ob ein zusätzliches Feld in der REST-Nutzlast einen Fehler generiert (Standardverhalten, abwärtskompatibel) oder ob die zusätzlichen Felder unbeaufsichtigt ignoriert werden.

"runtime": {
    "rest": {
      "enabled": true,
      "path": "/api",
      "request-body-strict": true
    },
    ...
}

Durch Festlegen der request-body-strict Option auf falsewerden Felder, die keine Zuordnung zum zugehörigen Datenbankobjekt aufweisen, ignoriert, ohne dass ein Fehler generiert wird.

Hinzufügen des Anwendungsnamens für mssql Verbindungen

Der Daten-API-Generator fügt jetzt den Wert dab-<version> als Application Name Eigenschaft in die Verbindungszeichenfolge ein, nur für mssql Datenbanktypen, wodurch die Identifizierung der Verbindungen auf dem Datenbankserver erleichtert wird. Wenn Application Name bereits in der Verbindungszeichenfolge vorhanden ist, wird ihr die Version des Daten-API-Generators angefügt.

Unterstützung time des Datentyps in mssql

time Der Datentyp wird jetzt in mssql Datenbanken unterstützt.

Mutationen in der Tabelle mit Triggern für mssql

Mutationen werden jetzt in Tabellen mit Triggern für mssql Datenbanken vollständig unterstützt.

Verhindern des Aktualisierens/Einfügens schreibgeschützter Felder in einer Tabelle nach Benutzer

Erkennen Sie automatisch schreibgeschützte Felder in der Datenbank, und verhindern Sie das Aktualisieren/Einfügen dieser Felder durch den Benutzer.

Neuerungen in Version 0.8

Hier finden Sie die Details zu den wichtigsten Änderungen und Verbesserungen in Data API Builder 0.8.

GitHub-Versionshinweise

Auf diesen Releaseseiten finden Sie eine umfassende Liste aller Änderungen und Verbesserungen:

Unterstützung für ENV-Datei hinzugefügt

Umgebungsvariablen schützen Geheimnisse vor der Nur-Text-Belichtung und ermöglichen den Wertaustausch in verschiedenen Einstellungen. Diese Variablen müssen jedoch entweder im Benutzer- oder Computerbereich festgelegt werden, was zu projektübergreifender Variable "Bleeding" führen kann, wenn Variablennamen dupliziert werden. Die bessere Alternative sind Umgebungsdateien. Weitere Informationen finden Sie unter Umgebungsdateien im Daten-API-Generator – Blog.

Neuerungen in Version 0.7.6

In diesem Artikel werden die Versionshinweise für die Version 0.7.6 beschrieben.

GitHub-Pull Requests

Anfängliche Unterstützung für die Dokumenterstellung von OpenAPI v3-0-1

Der Daten-API-Generator unterstützt den OpenAPI-Standard zum Generieren und Verfügbarmachen von Beschreibungsdokumenten, die nützliche Informationen zum Dienst enthalten. Diese Dokumentation wird aus der Laufzeitkonfigurationsdatei und den Metadaten für jedes Datenbankobjekt erstellt. Diese Objekte sind einer REST-aktivierten Entität zugeordnet, die in derselben Konfigurationsdatei definiert ist. Sie werden dann über eine Benutzeroberfläche verfügbar gemacht und als serialisierte Datei verfügbar gemacht.

Weitere Informationen zu den Besonderheiten des OpenAPI- und Daten-API-Generators finden Sie unter OpenAPI.

Zusammenführung von Konfigurationsdateien zulassen

Fügt die Möglichkeit hinzu, zwei Konfigurationsdateien automatisch zusammenzuführen.

Es ist möglich, mehrere Paare von baseline- und umgebungsspezifischen Konfigurationsdateien zu verwalten, um die Verwaltung der umgebungsspezifischen Einstellungen zu vereinfachen. Beispielsweise ist es möglich, separate Konfigurationen für Entwicklung und Produktion zu verwalten. Dieser Schritt umfasst eine Basiskonfigurationsdatei, die alle allgemeinen Einstellungen zwischen den verschiedenen Umgebungen enthält. Durch Festlegen der DAB_ENVIRONMENT Variablen kann dann gesteuert werden, welche Konfigurationsdateien zur Nutzung durch den Daten-API-Generator zusammengeführt werden sollen.

Weitere Informationen finden Sie unter CLI-Referenz.

Ausführen von GraphQL- und REST-Mutationen in einer Transaktion

Der Daten-API-Generator erstellt Datenbanktransaktionen, um bestimmte Typen von GraphQL- und REST-Anforderungen auszuführen.

Es gibt viele Anforderungen, bei denen mehrere Datenbankabfragen ausgeführt werden müssen. Um z. B. die Ergebnisse eines Updates zurückzugeben, muss zuerst eine Abfrage für das Update durchgeführt werden, dann müssen die neuen Werte gelesen werden, bevor sie zurückgegeben werden. Wenn für eine Anforderung mehrere Datenbankabfragen ausgeführt werden müssen, führt der Daten-API-Generator diese Datenbankabfragen jetzt innerhalb einer einzelnen Transaktion aus.

Weitere Informationen zu dieser Funktion finden Sie im Kontext von REST in der REST-Dokumentation und zu GraphQL in der GraphQL-Dokumentation.

Neuerungen in Version 0.6.14

In diesem Artikel wird der Patch für das Release vom März 2023 für Den Daten-API-Generator für Azure-Datenbanken beschrieben.

Fehlerbehebungen

  • Beheben sie das Problem mit dem Abfragefilterzugriff verweigert für Cosmos.
  • Cosmos DB unterstützt derzeit keine Autorisierung auf Feldebene. Um zu vermeiden, dass die Benutzer versehentlich die Berechtigungen in der field Laufzeitkonfiguration übergeben, haben wir eine Überprüfung hinzugefügt.

Neuerungen in Version 0.6.13

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.

Neuer CLI-Befehl zum Exportieren des GraphQL-Schemas

Eine neue Option zum Exportieren des GraphQL-Schemas wird hinzugefügt. Dadurch wird der DAB-Server gestartet und dann abfragt, um das Schema abzurufen, bevor es an den angegebenen Speicherort geschrieben wird.

dab export --graphql -c dab-config.development.json -o ./schemas

Dieser Befehl generiert die GraphQL-Schemadatei im Verzeichnis ./schemas. Der Pfad zur Konfigurationsdatei ist ein optionaler Parameter, der standardmäßig auf "dab-config.json" festgelegt ist, es sei denn, "dab-config".<>DAB_ENVIRONMENT.json" ist vorhanden, wobei DAB_ENVIRONMENT eine Umgebungsvariable ist.

Datenbankrichtlinienunterstützung für die Erstellungsaktion für MsSql

Datenbankrichtlinien werden jetzt für alle CRUD-Vorgänge (Create, Read, Update, Delete) für MsSql unterstützt. Beispiel:

"entities":{
  "Revenue":{
    "source": "revenues",
    "permissions":[
      "role": "authenticated",
          "actions": [
            {
              "action": "Create",
              "policy": {
                "database": "@item.revenue gt 0"
              }
            },
            "read",
            "update",
            "delete"
          ]
    ]
  }
}

Die vorherige Konfiguration für Revenue entität gibt an, dass der Benutzer, der einen Einfügevorgang mit der Rolle Authenticated ausführt, keinen Datensatz mit einem Umsatz erstellen darf, der kleiner oder gleich Null ist.

Möglichkeit zum Konfigurieren des GraphQL-Pfads und zum globalen Deaktivieren von REST- und GraphQL-Endpunkten über die CLI

Wir unterstützen jetzt drei weitere Optionen für den init Befehl:

  • graphql.path : So stellen Sie einen benutzerdefinierten GraphQL-Pfad bereit
  • rest.disabled: So deaktivieren Sie REST-Endpunkte global
  • graphql.disabled: So deaktivieren Sie GraphQL-Endpunkte global

Beispielsweise würde ein init Befehl eine Konfigurationsdatei mit einem Laufzeitabschnitt generieren:

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"
    },
}

Schlüsselfelder, die zum Hinzufügen und Aktualisieren von Ansichten in der CLI erforderlich sind

Es ist jetzt obligatorisch, dass der Benutzer die Schlüsselfelder (die als Primärschlüssel verwendet werden sollen) über die verfügbar gemachte Option source.key-fields angeben, wenn der Konfiguration eine neue Datenbankansicht (über dab add) über die CLI hinzugefügt wird. Außerdem ist es bei jeder Aktualisierung von Elementen in der Konfiguration der Ansicht (über dab update) in der Konfigurationsdatei über die CLI erforderlich, wenn das Update etwas ändert, das sich auf die Definition der Ansicht in der zugrunde liegenden Datenbank bezieht (z. B. Quelltyp, Schlüsselfelder), die Schlüsselfelder auch im Updatebefehl anzugeben.

Wir unterstützen jedoch weiterhin Ansichten, ohne explizite Primärschlüssel in der Konfiguration angegeben zu haben, aber die Konfiguration für solche Ansichten muss direkt in der Konfigurationsdatei geschrieben werden.

Beispielsweise wird ein dab add Befehl verwendet, um eine Ansicht hinzuzufügen:

dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true

Mit diesem Befehl wird die Konfiguration für books_view die Entität generiert, die wie im folgenden Beispiel aussieht:

"books_view": {
      "source": {
        "type": "view",
        "object": "books_view",
        "key-fields":[
          "id"
        ]
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "*"
          ]
        }
      ],
      "rest": true,
      "graphql": true
    }

Da DAB jetzt Open Source ist, müssen wir die Artefakte nicht aus dem Speicherkonto herunterladen. Stattdessen können wir sie direkt von GitHub herunterladen. Daher werden die Links entsprechend aktualisiert.

Neuerungen in Version 0.5.34

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.

Berücksichtigen des REST- und GraphQL-fähigen Flags auf Laufzeitebene

Es wird eine neue Option hinzugefügt, die das Aktivieren oder Deaktivieren von REST-/GraphQL-Anforderungen für alle Entitäten auf Laufzeitebene ermöglicht. Wenn sie global deaktiviert ist, kann unabhängig von den einzelnen Entitätseinstellungen auf keine Entitäten über REST- oder GraphQL-Anforderungen zugegriffen werden. Wenn diese Option global aktiviert ist, kann standardmäßig auf einzelne Entitäten zugegriffen werden, es sei denn, die Einstellungen auf Entitätsebene werden explizit deaktiviert.

"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/graphql"
    }
  }

Korrelations-ID in Anforderungsprotokollen

Um das Debuggen zu erleichtern, fügen wir eine Korrelations-ID an alle Protokolle an, die während einer Anforderung generiert werden. Da viele Anforderungen gestellt werden können, ist es wichtig, die Protokolle für eine bestimmte Anforderung zu identifizieren, um den Debugprozess zu unterstützen.

Unterstützung von Wildcard-Vorgängen für gespeicherte Prozeduren in Engine und CLI

Für gespeicherte Prozeduren können Rollen jetzt mit der Wildcardaktion * konfiguriert werden, sie wird jedoch nur auf die execute Aktion erweitert.

Neuerungen in Version 0.5.32

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.

Möglichkeit zum Anpassen des Restpfads über die CLI

Im Befehl wird eine neue Option --rest.path eingeführt init , um den Pfad für REST-APIs anzupassen.

dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api" 

Dieser Befehl konfiguriert die REST-Endpunkte mit dem Präfix rest-api. Der vollständige Pfad für die REST-Endpunkte lautet https://<dab-server>/rest-api/<entity-name>

Wenn --rest.path die Option nicht verwendet wird, werden die REST-Endpunkte mit dem Standardpräfix apikonfiguriert. Der vollständige Pfad lautet in diesem Fall https://<dab-server>/api/<entity-name>

Containerimage des Daten-API-Generators in MAR

Die offiziellen Docker-Images für den Daten-API-Generator für Azure-Datenbanken sind jetzt in Microsoft Artifact Registry verfügbar.

Anweisungen zur Verwendung der veröffentlichten Images finden Sie unter Microsoft Container Registry – Daten-API-Generator.

Unterstützung für GraphQL-Fragmente

Fragmente sind wiederverwendbare Teile einer graphQL-Abfrage. In Szenarien, in denen dieselben Felder in verschiedenen Abfragen abgefragt werden müssen, können die wiederholten Felder in einer einzigen wiederverwendbaren Komponente namens Fragment konsolidiert werden.

Weitere Informationen zu Fragmenten finden Sie unter GraphQL-Abfragen.

Als Nächstes wird ein Fragment namens description vom Typ Character definiert:

fragment description on Character {
  name
  homePlanet
  primaryFunction
}

Eine GraphQL-Abfrage, die das definierte Fragment verwendet, kann wie hier dargestellt erstellt werden:

{
  Player1: Player{
    id
    playerDescription{
        ...description
    }
  }
}

Für die vorherige Abfrage enthält das Ergebnis die folgenden Felder:

{
 Player1: Player{
    id
    playerDescription{
        name
        homePlanet
        primaryFunction
    }
  }   
}

Aktivieren von BinSkim und Korrigieren von Policheck-Warnungen

BinSkim ist ein einfacher PE-Scanner (Portable Executable, portierbar ausführbar), mit dem Compiler- und Linker-Einstellungen sowie andere sicherheitsrelevante binäre Merkmale überprüft werden. Eine Pipelineaufgabe in der static-tools Pipeline wird hinzugefügt, um BinSkim-Überprüfungen bei jeder Pipelineausführung auszuführen. Das PoliCheck-System besteht aus einer Reihe von Tools und Daten, die dazu beiträgt, die Anforderungen der Text- und Codeüberprüfung als Teil der globalen Bereitschaftsrichtlinie einzuhalten. Die von Policheck-Überprüfungen generierten Warnungen sind mit sensiblen Begriffen kompatibel.

Neuerungen in Version 0.5.0

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.

Öffentliches JSON-Schema

Das öffentliche JSON-Schema bietet Unterstützung für "IntelliSense", wenn Sie eine IDE wie Visual Studio Code verwenden, die JSON-Schemas unterstützt. Die basic-empty-dab-config.json Datei im samples Ordner verfügt über einen Beispielstartpunkt beim manuellen Erstellen der dab-config.json Datei.

Öffentliches Microsoft.DataApiBuilder NuGet

Microsoft.DataApiBuilder ist jetzt als öffentliches NuGet-Paket hier verfügbar, um die Installation mit dem dotnet-Tool wie folgt zu vereinfachen:

dotnet tool install --global Microsoft.DataApiBuilder

Neue execute Aktion für gespeicherte Prozeduren in Azure SQL

Eine neue execute Aktion wird nur dann als die einzige zulässige Aktion im permissions Abschnitt der Konfigurationsdatei eingeführt, wenn ein Quelltyp eine Entität von stored-procedurezurückgibt. Standardmäßig ist für solche Entitäten nur POST die Methode zulässig, und nur der GraphQL-Vorgang mutation wird mit dem Präfix execute konfiguriert, das ihrem Namen hinzugefügt wurde. Durch explizite Angabe des zulässigen methods im rest Abschnitt der Konfigurationsdatei wird dieses Verhalten außer Kraft gesetzt. Ebenso kann für GraphQL die operation im graphql Abschnitt überschrieben werden, um stattdessen zu sein query . Weitere Informationen finden Sie unter Sichten und gespeicherte Prozeduren.

Neuer mappings Abschnitt

mappings Im Abschnitt unter werden entitydie Zuordnungen zwischen Datenbankobjektfeldnamen und den entsprechenden verfügbar gemachten Feldnamen sowohl für GraphQL- als auch für REST-Endpunkte definiert.

Das Format lautet:

<database_field>: <entity_field>

Beispiel:

  "mappings":{
    "title": "descriptions",
    "completed": "done"
  }

Das title Feld im verknüpften Datenbankobjekt wird dem Feld im GraphQL-Typ oder in der REST-Anforderungs- und Antwortnutzlast zugeordnet description .

Unterstützung für den Sitzungskontext in Azure SQL

Um eine zusätzliche Sicherheitsebene (z. B. Row Level Security, RLS) zu aktivieren, unterstützt DAB jetzt das Senden von Daten an die zugrunde liegende Sql Server-Datenbank über SESSION_CONTEXT. Weitere Informationen finden Sie in diesem ausführlichen Dokument unter SESSION_CONTEXT: Runtime-zu-Datenbank-Autorisierung.

Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in PostgreSQL

Mit PostgreSQL können Sie jetzt die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte wie Azure SQL ausgeführt werden können.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Unterstützung der Skalarliste in Cosmos DB NoSQL

Die Möglichkeit zum Abfragen List von Skalaren wurde jetzt für Cosmos DB hinzugefügt.

Betrachten Sie diese Typdefinition.

type Planet @model(name:"Planet") {
    id : ID,
    name : String,
    dimension : String,
    stars: [Star]
    tags: [String!]
}

Es ist jetzt möglich, eine Abfrage auszuführen, die eine Liste abruft, z. B.

query ($id: ID, $partitionKeyValue: String) {
    planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
        tags
    }
}

Erweiterte Protokollierungsunterstützung mithilfe der Protokollebene

  • Die Standardprotokollebenen für die Engine, wenn host.mode bzwDevelopment. auf bzwDebug. aktualisiert Error wirdProduction.
  • Während des Startvorgangs des Moduls werden für jede Spalte einer Entität Informationen wie verfügbar gemachte Feldnamen und der Primärschlüssel protokolliert. Dieses Verhalten tritt auch beim Typ auf, wenn die Feldzuordnung automatisch generiert wird.
  • Im lokalen Ausführungsszenario werden alle Abfragen, die während des Startvorgangs des Moduls generiert und ausgeführt werden, auf Ebene Debug protokolliert.
  • Für jede Entität werden Beziehungsfelder wie source.fields, target.fieldsund cardinality protokolliert. Wenn es viele Beziehungen gibt, linking.objectlinking.source.fieldswerden , und linking.target.fields aus der Datenbank (oder aus der Konfigurationsdatei) abgeleitete Beziehungen protokolliert.
  • Für jede eingehende Anforderung werden die Rolle und der Authentifizierungsstatus der Anforderung protokolliert.
  • In der CLI wird die Microsoft.DataAPIBuilder Version zusammen mit den Protokollen protokolliert, die der Ausführung des jeweiligen Befehls zugeordnet sind.

CLI aktualisiert

  • --no-https-redirect -Option wird dem start Befehl hinzugefügt. Mit dieser Option kann die automatische Umleitung von Anforderungen von http zu https verhindert werden.

  • In MsSql kann der Sitzungskontext mithilfe --set-session-context true des init Befehls aktiviert werden. In diesem Beispiel wird ein Beispielbefehl gezeigt:

    dab init --database-type mssql --connection-string "Connection String" --set-session-context true
    
  • Authentifizierungsdetails wie Anbieter, Zielgruppe und Aussteller können mit den Optionen --auth.provider, --auth.audienceund --auth.issuer. im init Befehl konfiguriert werden. In diesem Beispiel wird ein Beispielbefehl gezeigt:

    dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
    
  • Benutzerfreundliche Fehlermeldungen, wenn der Entitätsname nicht angegeben wird.

Neuerungen in Version 0.4.11

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.

Aktualisiertes JSON-Schema für data-source den Abschnitt

Der data-source Abschnitt in der Konfigurationsdatei wird so aktualisiert, dass er für alle unterstützten Datenbanken konsistent ist, aber dennoch für jede Datenbank benutzerdefinierte Konfigurationen zulassen kann. Ein neuer Abschnitt options wird eingeführt, um alle Eigenschaften zu gruppieren, die für eine Datenbank spezifisch sind. Beispiel:

{
  "$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;"
  }
}

Die im Abschnitt verfügbaren options Elemente hängen vom ausgewählten ab database-type.

Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in Azure SQL und SQL Server

Mit Azure SQL und SQL Server können Sie die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte ausgeführt werden können.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Verbesserte Unterstützung gespeicherter Prozeduren

Vollständige Unterstützung für gespeicherte Prozeduren in REST und GraphQL. Gespeicherte Prozedur mit Parametern jetzt zu 100 % unterstützt. In der Dokumentation zu gespeicherten Prozeduren erfahren Sie, wie Sie den Daten-API-Generator mit gespeicherten Prozeduren verwenden.

Neuer database-type Wert für Cosmos DB umbenannt

Wir haben Unterstützung für die PostgreSQL-API mit Cosmos DB hinzugefügt. Bei einem konsolidierten data-source Abschnitt gibt das Attribut database-type den Typ der Datenbank an. Da Cosmos DB mehrere APIs unterstützt, sind cosmosdb_nosql die derzeit unterstützten Datenbanktypen und cosmosdb_postgresql.

  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    }
  }

Umbenennen von CLI-Eigenschaften für cosmosdb_nosql

Nach den in den vorherigen Abschnitten beschriebenen Konfigurationsänderungen werden CLI-Eigenschaften nun entsprechend als cosmosdb_nosql-database und cosmosdb_nosql-container für Cosmos DB NoSQL-API umbenannt.

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"

Verwaltete Identität wird jetzt mit Postgres unterstützt

Nun kann der Benutzer alternativ das Zugriffstoken in der Konfiguration angeben, um sich mit einer verwalteten Identität zu authentifizieren. Alternativ kann der Benutzer jetzt einfach nicht das Kennwort in der Verbindungszeichenfolge angeben, und die Runtime versucht, das Standardtoken für die verwaltete Identität abzurufen. Wenn dies fehlschlägt, wird die Verbindung ohne Kennwort in der Verbindungszeichenfolge versucht.

Unterstützung der Microsoft Entra ID-Benutzerauthentifizierung für Azure MySQL

Benutzertoken als Kennwortfeld hinzugefügt, um sich mit MySQL mit dem Microsoft Entra ID-Plug-In zu authentifizieren.

Neuerungen in Version 0.3.7

Die vollständige Liste der Versionshinweise für diese Version ist auf GitHub verfügbar: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.

Support anzeigen

Ansichten werden jetzt sowohl in REST als auch in GraphQL unterstützt. Wenn Sie über eine Ansicht verfügen, kann sie beispielsweise dbo.vw_books_details mit dem folgenden dab Befehl verfügbar gemacht werden:

dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"

Die source.key-fields Option wird verwendet, um anzugeben, welche Felder aus der Ansicht verwendet werden, um ein Element eindeutig zu identifizieren, sodass die Navigation nach Primärschlüssel auch für Ansichten implementiert werden kann. Es liegt in der Verantwortung des Entwicklers, der DAB konfiguriert, um Aktionen (z. B. die create Aktion) zu aktivieren oder zu deaktivieren, je nachdem, ob die Ansicht aktualisierbar ist oder nicht.

Unterstützung gespeicherter Prozeduren

Gespeicherte Prozeduren werden jetzt für REST-Anforderungen unterstützt. Wenn Sie über eine gespeicherte Prozedur verfügen, kann sie beispielsweise dbo.stp_get_all_cowritten_books_by_author mit dem folgenden dab Befehl verfügbar gemacht werden:

dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true

Der Parameter kann in der URL-Abfragezeichenfolge übergeben werden, wenn der REST-Endpunkt aufgerufen wird:

http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov

Hinweis

Es liegt in der Verantwortung des Entwicklers, der DAB konfiguriert, um Aktionen (z. B. die create Aktion) zu aktivieren oder zu deaktivieren, um bestimmte HTTP-Verben beim Aufrufen der gespeicherten Prozedur zuzulassen oder zu verweigern. Für die gespeicherte Prozedur, die im Beispiel verwendet wird, wäre es beispielsweise sinnvoll, nur die read Aktion zuzulassen, da ihr Zweck darin besteht, einige Daten zurückzugeben.

Microsoft Entra ID-Authentifizierung

Die Microsoft Entra ID-Authentifizierung funktioniert jetzt vollständig. Weitere Informationen finden Sie unter Authentifizierung mit der Microsoft Entra-ID.

Neuer Simulatorauthentifizierungsanbieter für die lokale Authentifizierung

Um das Testen authentifizierter Anforderungen bei der lokalen Entwicklung zu vereinfachen, ist ein neuer simulator Authentifizierungsanbieter verfügbar. Der Anbieter simulator ist ein konfigurierbarer Authentifizierungsanbieter, der die Daten-API-Generator-Engine anweist, alle Anforderungen als authentifiziert zu behandeln. Weitere Details finden Sie hier: Lokale Authentifizierung

Unterstützung für das Filtern nach geschachtelten Objekten in einem Dokument in Azure Cosmos DB

Mit Azure Cosmos DB können Sie die in Ihrem Schema definierte Objekt- oder Arraybeziehung verwenden, wodurch Filtervorgänge für die geschachtelten Objekte ausgeführt werden können.

query {
  books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
    id
    name
  }
}