Configuratiebestandsomgevingen gebruiken met Data API Builder
In deze handleiding worden de stappen beschreven voor het richten van een ontwikkelomgeving met behulp van een configuratiebestand. De configuratiebestanden van het eindresultaat moeten flexibel genoeg zijn om in de toekomst een productiedatabaseconfiguratie met minimale wijzigingen toe te voegen.
Vereisten
- Bestaande SQL-database.
- Een gegevensbeheerclient
- Als u geen client hebt geïnstalleerd, installeert u Azure Data Studio
- Data API builder CLI. De CLI installeren
SQL-tabel en -gegevens Creatie
Creatie een tabel met fictieve gegevens voor gebruik in dit voorbeeldscenario.
Maak verbinding met de SQL-server en -database met behulp van de client of het hulpprogramma van uw voorkeur. Voorbeelden zijn onder andere: SQL Server Management Studio, Azure Data Studio en de SQL Server-extensie voor Visual Studio Code.
Creatie een tabel met de naam
Books
enid
name
kolommen.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
Voeg vier rijen met voorbeeldboeken in de
Books
tabel in.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
Test uw gegevens met een eenvoudige
SELECT *
query.SELECT * FROM dbo.Books
Creatie basisconfiguratiebestand
Creatie een basislijnconfiguratiebestand met behulp van de DAB CLI.
Creatie een typisch configuratiebestand met behulp van
dab init
.dab init --database-type "mssql" --host-mode "Development"
Voeg een Book-entiteit toe met behulp van
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Bekijk het huidige dab-config.json configuratiebestand. Het bestand moet een basislijnimplementatie van uw API bevatten met één entiteit, een REST API-eindpunt en een GraphQL-eindpunt.
{ "$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": "*" } ] } ] } } }
bestand met omgevingsvariabelen Creatie
Voeg nu een omgevingsbestand toe om omgevingsvariabelen voor DAB op te slaan.
- Creatie een bestand met de naam
.env
in dezelfde map als uw DAB CLI-configuratiebestanden.
Notitie
De .env
bestandsnaam, zoals .gitignore
en .editorconfig
bestanden heeft geen bestandsnaam, alleen een bestandsextensie. De naam is niet hoofdlettergevoelig, maar de conventie is kleine letters.
Voeg een omgevingsvariabele
DAB_ENVIRONMENT
toe met de waarde .Development
Voeg ook een omgevingsvariabeleSQL_DOCKER_CONNECTION_STRING
toe met uw database verbindingsreeks.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Creatie-omgevingsconfiguratiebestand
Voeg ten slotte een configuratiebestand voor ontwikkeling toe met de verschillen tussen uw huidige configuratie en de gewenste omgevingsconfiguratie.
Maak een
dab-config.Development.json
-bestand. Voeg de volgende inhoud toe om de@env()
functie te gebruiken om uwconnection-string
waarde in de ontwikkelomgeving in te stellen.{ "$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')" } }
Sla uw wijzigingen op in de .env-, dab-config.json- en dab-config. Development.json bestanden.
Testinstallatie
Gebruik
dab start
om te valideren dat het hulpprogramma wordt gestart zoals verwacht.dab start
De uitvoer van het hulpprogramma moet het adres bevatten dat moet worden gebruikt om naar de actieve API te navigeren.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tip
In dit voorbeeld wordt de toepassing uitgevoerd op
localhost
poort 5000. Uw actieve toepassing heeft mogelijk een ander adres en een andere poort.Probeer eerst de API handmatig uit door een GET-aanvraag te verzenden naar
/api/Book
.Tip
In dit voorbeeld is
https://localhost:5000/api/Book
de URL . U kunt naar deze URL navigeren met behulp van uw webbrowser.Navigeer vervolgens naar de Swagger-documentatiepagina op
/swagger
.Tip
In dit voorbeeld is
<https://localhost:5000/swagger
de URL . Nogmaals, u kunt naar deze URL navigeren met behulp van uw webbrowser.Probeer ten slotte het GraphQL-eindpunt door te navigeren naar
/graphql
en deze bewerking uit te voeren.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Tip
In dit voorbeeld is
https://localhost:5000/graphql
de URL . Nogmaals, u kunt naar deze URL navigeren met behulp van uw webbrowser.