Använda konfigurationsfilmiljöer med Data API Builder
Den här guiden beskriver steg för steg hur du riktar in dig på en utvecklingsmiljö med hjälp av en konfigurationsfil. Konfigurationsfilerna för slutresultatet bör vara tillräckligt flexibla för att en konfiguration av produktionsdatabasen ska kunna läggas till i framtiden med minimala ändringar.
Förutsättningar
- Befintlig SQL-databas.
- En datahanteringsklient
- Om du inte har en klient installerad installerar du Azure Data Studio
- Cli för data-API-byggare. Installera CLI
Skapa SQL-tabell och -data
Skapa en tabell med fiktiva data som ska användas i det här exempelscenariot.
Anslut till SQL-servern och databasen med den klient eller det verktyg du föredrar. Exempel är, men är inte begränsade till: SQL Server Management Studio, Azure Data Studio och SQL Server-tillägget för Visual Studio Code.
Skapa en tabell med namnet
Books
medid
kolumnerna ochname
.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
Infoga fyra exempelboksrader i
Books
tabellen.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
Testa dina data med en enkel
SELECT *
fråga.SELECT * FROM dbo.Books
Skapa baskonfigurationsfil
Skapa en baslinjekonfigurationsfil med HJÄLP av DAB CLI.
Skapa en typisk konfigurationsfil med .
dab init
dab init --database-type "mssql" --host-mode "Development"
Lägg till en bokentitet med hjälp av
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Observera din aktuella dab-config.json konfigurationsfil. Filen bör innehålla en baslinjeimplementering av ditt API med en enda entitet, en REST API-slutpunkt och en GraphQL-slutpunkt.
{ "$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": "*" } ] } ] } } }
Skapa filen med miljövariabler
Lägg nu till en miljöfil för att lagra miljövariabler för DAB.
- Skapa en fil med namnet
.env
i samma katalog som dina DAB CLI-konfigurationsfiler.
Anteckning
Filnamnet .env
, som .gitignore
och .editorconfig
-filerna har inget filnamn, bara ett filnamnstillägg. Namnet är skiftlägesokänsligt, men konventionen är gemen.
Lägg till en
DAB_ENVIRONMENT
miljövariabel med värdetDevelopment
. Lägg också till enSQL_DOCKER_CONNECTION_STRING
miljövariabel med din databas anslutningssträng.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Skapa miljökonfigurationsfil
Slutligen lägger du till en utvecklingskonfigurationsfil med delta mellan den aktuella konfigurationen och önskad miljökonfiguration.
Skapa en
dab-config.Development.json
-fil. Lägg till följande innehåll för att använda@env()
funktionen för att ange dittconnection-string
värde i utvecklingsmiljön.{ "$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')" } }
Spara ändringarna i .env, dab-config.json och dab-config. Development.json filer.
Testkonfiguration
Använd
dab start
för att verifiera att verktyget startar som förväntat.dab start
Utdata från verktyget ska innehålla den adress som ska användas för att navigera till api:et som körs.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tips
I det här exemplet körs programmet på
localhost
port 5000. Det program som körs kan ha en annan adress och port.Prova först API:et manuellt genom att utfärda en GET-begäran till
/api/Book
.Tips
I det här exemplet är
https://localhost:5000/api/Book
URL:en . Du kan navigera till den här URL:en med hjälp av webbläsaren.Gå sedan till sidan för Swagger-dokumentation på
/swagger
.Tips
I det här exemplet är
<https://localhost:5000/swagger
URL:en . Återigen kan du navigera till den här URL:en med hjälp av webbläsaren.Prova slutligen GraphQL-slutpunkten genom att gå till
/graphql
och köra den här åtgärden.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Tips
I det här exemplet är
https://localhost:5000/graphql
URL:en . Återigen kan du navigera till den här URL:en med hjälp av webbläsaren.