Konfigurációs fájlkörnyezetek használata a Data API Builderrel
Ez az útmutató végigvezeti a fejlesztési környezet konfigurációs fájllal történő megcélzásának lépésein. A végeredmény konfigurációs fájljainak elég rugalmasnak kell lenniük ahhoz, hogy az éles adatbázis konfigurációja a jövőben minimális módosításokkal hozzáadható legyen.
Előfeltételek
- Meglévő SQL-adatbázis.
- Adatkezelési ügyfél
- Ha nincs telepítve ügyfél, telepítse az Azure Data Studiót
- Data API Builder PARANCSSORI. A CLI telepítése
SQL-tábla és -adatok Létrehozás
Létrehozás egy táblát, amely fiktív adatokat tartalmaz ebben a példaforgatókönyvben.
Csatlakozzon az SQL Serverhez és az adatbázishoz az előnyben részesített ügyfél vagy eszköz használatával. Ilyen például a SQL Server Management Studio, az Azure Data Studio és a Visual Studio Code SQL Server bővítménye.
Létrehozás nevű táblát
Books
ésname
oszlopokatid
.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
Szúrjon be négy könyvmintát a
Books
táblázatba.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
Tesztelje az adatokat egy egyszerű
SELECT *
lekérdezéssel.SELECT * FROM dbo.Books
Létrehozás alapkonfigurációs fájl
Létrehozás alapkonfigurációs fájlt a DAB CLI használatával.
Létrehozás egy tipikus konfigurációs fájlt a használatával
dab init
.dab init --database-type "mssql" --host-mode "Development"
Adjon hozzá egy Book entitást a használatával
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Figyelje meg az aktuális dab-config.json konfigurációs fájlt. A fájlnak tartalmaznia kell az API alapkonfigurációját egyetlen entitással, EGY REST API-végponttal és egy GraphQL-végponttal.
{ "$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": "*" } ] } ] } } }
környezeti változók fájl Létrehozás
Most adjon hozzá egy környezeti fájlt a DAB környezeti változóinak tárolásához.
- Létrehozás egy nevű
.env
fájlt ugyanabban a könyvtárban, mint a DAB CLI konfigurációs fájljai.
Megjegyzés
A .env
fájlnév (például .gitignore
és .editorconfig
fájl) nem rendelkezik fájlnévvel, csak fájlkiterjesztéssel. A név nem különbözteti meg a kis- és nagybetűket, de a konvenció kisbetűs.
Adjon hozzá egy
DAB_ENVIRONMENT
környezeti változót a értékévelDevelopment
. Emellett adjon hozzá egy környezeti változótSQL_DOCKER_CONNECTION_STRING
az adatbázis-kapcsolati karakterlánc.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Létrehozás környezeti konfigurációs fájl
Végül adjon hozzá egy fejlesztési konfigurációs fájlt az aktuális konfiguráció és a kívánt környezeti konfiguráció közötti eltéréssel.
Hozzon létre egy
dab-config.Development.json
fájlt. Adja hozzá a következő tartalmat, hogy a@env()
függvény használatával állítsa be azconnection-string
értékét a fejlesztési környezetben.{ "$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')" } }
Mentse a módosításokat az .env, a dab-config.json és a dab-config fájlba. Development.json fájlokat.
Beállítás tesztelése
Az
dab start
eszközzel ellenőrizze, hogy az eszköz a várt módon indul-e el.dab start
Az eszköz kimenetének tartalmaznia kell a futó API-hoz való navigáláshoz használandó címet.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tipp
Ebben a példában az alkalmazás az 5000-s porton
localhost
fut. Előfordulhat, hogy a futó alkalmazás címe és portja eltérő.Először próbálja ki manuálisan az API-t egy GET-kérés kiadásával a következőnek
/api/Book
: .Tipp
Ebben a példában az URL-cím a következő:
https://localhost:5000/api/Book
. Ehhez az URL-címhez a webböngészőben navigálhat.Ezután lépjen a Swagger dokumentációs oldalára a címen
/swagger
.Tipp
Ebben a példában az URL-cím a következő:
<https://localhost:5000/swagger
. Ehhez az URL-címhez a webböngészővel is navigálhat.Végül próbálja ki a GraphQL-végpontot a
/graphql
művelet eléréséhez és futtatásához.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Tipp
Ebben a példában az URL-cím a következő:
https://localhost:5000/graphql
. Ehhez az URL-címhez a webböngészővel is navigálhat.