Verwenden von Konfigurationsdateiumgebungen mit dem Daten-API-Generator
In diesem Leitfaden werden die Schritte für eine Entwicklungsumgebung mithilfe einer Konfigurationsdatei beschrieben. Die Endergebniskonfigurationsdateien sollten so flexibel sein, dass eine Produktionsdatenbankkonfiguration in Zukunft mit minimalen Änderungen hinzugefügt werden kann.
Voraussetzungen
- Vorhandene SQL-Datenbank.
- Ein Datenverwaltungsclient
- Wenn Sie keinen Client installiert haben, installieren Sie Azure Data Studio.
- Daten-API-Generator-CLI. Installieren der Befehlszeilenschnittstelle
Create SQL-Tabelle und -Daten
Create eine Tabelle mit fiktiven Daten, die in diesem Beispielszenario verwendet werden sollen.
Stellen Sie mithilfe Ihres bevorzugten Clients oder Tools eine Verbindung mit dem SQL Server und der Datenbank her. Beispiele hierfür sind unter anderem: SQL Server Management Studio, Azure Data Studio und die SQL Server-Erweiterung für Visual Studio Code.
Create eine Tabelle mit
id
dem NamenBooks
undname
spalten.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ); GO
Fügen Sie vier Beispielbuchzeilen in die
Books
Tabelle ein.INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
Testen Sie Ihre Daten mit einer einfachen
SELECT *
Abfrage.SELECT * FROM dbo.Books
Create Basiskonfigurationsdatei
Create eine Baselinekonfigurationsdatei mithilfe der DAB CLI.
Create eine typische Konfigurationsdatei mit
dab init
.dab init --database-type "mssql" --host-mode "Development"
Fügen Sie mithilfe von eine Book-Entität
dab add
hinzu.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Beobachten Sie ihre aktuelle dab-config.json-Konfigurationsdatei. Die Datei sollte eine Basisimplementierung Ihrer API mit einer einzelnen Entität, einem REST-API-Endpunkt und einem GraphQL Endpunkt enthalten.
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": true, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": true, "path": "/graphql", "allow-introspection": true }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "StaticWebApps" }, "mode": "development" } }, "entities": { "Book": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Book", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
Create Umgebungsvariablendatei
Fügen Sie nun eine Umgebungsdatei hinzu, um Umgebungsvariablen für DAB zu speichern.
- Create eine Datei namens
.env
im selben Verzeichnis wie Ihre DAB CLI-Konfigurationsdateien.
Hinweis
Der .env
Dateiname, z. B .gitignore
. und .editorconfig
Dateien, hat keinen Dateinamen, nur eine Dateierweiterung. Beim Namen wird die Groß-/Kleinschreibung nicht beachtet, aber die Konvention ist Kleinbuchstaben.
Fügen Sie eine Umgebungsvariable
DAB_ENVIRONMENT
mit dem Wert hinzuDevelopment
. Fügen Sie außerdem eine UmgebungsvariableSQL_DOCKER_CONNECTION_STRING
mit Ihrer Datenbank Verbindungszeichenfolge hinzu.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create Umgebungskonfigurationsdatei
Fügen Sie abschließend eine Entwicklungskonfigurationsdatei mit dem Delta zwischen Ihrer aktuellen Konfiguration und der gewünschten Umgebungskonfiguration hinzu.
Erstellen Sie die Datei
dab-config.Development.json
. Fügen Sie den folgenden Inhalt hinzu, um die@env()
-Funktion zum Festlegen Ihresconnection-string
Werts in der Entwicklungsumgebung zu verwenden.{ "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>", "data-source": { "database-type": "mssql", "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')" } }
Speichern Sie Ihre Änderungen an ENV, dab-config.json und dab-config. Development.json Dateien.
Testeinrichtung
Verwenden Sie
dab start
, um zu überprüfen, ob das Tool wie erwartet gestartet wird.dab start
Die Ausgabe des Tools sollte die Adresse enthalten, die zum Navigieren zur ausgeführten API verwendet werden soll.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tipp
In diesem Beispiel wird die Anwendung an
localhost
Port 5000 ausgeführt. Ihre ausgeführte Anwendung verfügt möglicherweise über eine andere Adresse und einen anderen Port.Probieren Sie zunächst die API manuell aus, indem Sie eine GET-Anforderung an ausstellen
/api/Book
.Tipp
In diesem Beispiel lautet
https://localhost:5000/api/Book
die URL . Sie können mit Ihrem Webbrowser zu dieser URL navigieren.Navigieren Sie als Nächstes unter zur Swagger-Dokumentationsseite
/swagger
.Tipp
In diesem Beispiel lautet
<https://localhost:5000/swagger
die URL . Auch hier können Sie mit Ihrem Webbrowser zu dieser URL navigieren.Probieren Sie schließlich den GraphQL Endpunkt aus, indem Sie zu
/graphql
navigieren und diesen Vorgang ausführen.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Tipp
In diesem Beispiel lautet
https://localhost:5000/graphql
die URL . Auch hier können Sie mit Ihrem Webbrowser zu dieser URL navigieren.