Usare ambienti di file di configurazione con Generatore API dati
Questa guida illustra i passaggi per definire come destinazione un ambiente di sviluppo usando un file di configurazione. I file di configurazione dei risultati finali devono essere sufficientemente flessibili da poter aggiungere una configurazione del database di produzione in futuro con modifiche minime.
Prerequisiti
- Database SQL esistente.
- Un client di gestione dei dati
- Se non è installato un client, installare Azure Data Studio
- Interfaccia della riga di comando del generatore di API dati. Installare l'interfaccia della riga di comando
Create tabella e dati SQL
Create una tabella con dati fittizi da usare in questo scenario di esempio.
Connettersi al server SQL e al database usando il client o lo strumento preferito. Gli esempi includono, ma non sono limitati a: SQL Server Management Studio, Azure Data Studio e l'estensione SQL Server per Visual Studio Code.
Create una tabella denominata
Books
conid
le colonne ename
.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
Inserire quattro righe di libri di esempio nella
Books
tabella.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
Testare i dati con una query semplice
SELECT *
.SELECT * FROM dbo.Books
Create file di configurazione di base
Create un file di configurazione di base usando l'interfaccia della riga di comando di DAB.
Create un file di configurazione tipico usando
dab init
.dab init --database-type "mssql" --host-mode "Development"
Aggiungere un'entità Book usando
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Osservare il file di configurazione dab-config.json corrente. Il file deve includere un'implementazione di base dell'API con una singola entità, un endpoint API REST e un endpoint GraphQL.
{ "$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 file delle variabili di ambiente
Aggiungere ora un file di ambiente per archiviare le variabili di ambiente per DAB.
Create un file con estensione env nella stessa directory dei file di configurazione dell'interfaccia della riga di comando di DAB.
Aggiungere una
DAB_ENVIRONMENT
variabile diDevelopment
ambiente con il valore . Aggiungere inoltre unaSQL_DOCKER_CONNECTION_STRING
variabile di ambiente con il database stringa di connessione.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create file di configurazione dell'ambiente
Aggiungere infine un file di configurazione di sviluppo con il delta tra la configurazione corrente e la configurazione dell'ambiente desiderata.
Creare un file
dab-config.Development.json
. Aggiungere il contenuto seguente per usare la@env()
funzione per impostare ilconnection-string
valore nell'ambiente di sviluppo.{ "$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')" } }
Salvare le modifiche apportate a .env, dab-config.json e dab-config. Development.json file.
Impostazione del test
Usare
dab start
per convalidare l'avvio dello strumento come previsto.dab start
L'output dello strumento deve includere l'indirizzo da usare per passare all'API in esecuzione.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Suggerimento
In questo esempio l'applicazione viene eseguita sulla
localhost
porta 5000. L'applicazione in esecuzione può avere un indirizzo e una porta diversi.Provare prima di tutto l'API manualmente inviando una richiesta GET a
/api/Book
.Suggerimento
In questo esempio l'URL sarà
https://localhost:5000/api/Book
. È possibile passare a questo URL usando il Web browser.Passare quindi alla pagina della documentazione di Swagger all'indirizzo
/swagger
.Suggerimento
In questo esempio l'URL sarà
<https://localhost:5000/swagger
. Anche in questo caso, è possibile passare a questo URL usando il Web browser.Infine, provare l'endpoint GraphQL passando a
/graphql
ed eseguendo questa operazione.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Suggerimento
In questo esempio l'URL sarà
https://localhost:5000/graphql
. Anche in questo caso, è possibile passare a questo URL usando il Web browser.