Utiliser des environnements de fichiers de configuration avec le générateur d’API de données
Ce guide décrit les étapes à suivre pour cibler un environnement de développement à l’aide d’un fichier de configuration. Les fichiers de configuration des résultats finaux doivent être suffisamment flexibles pour qu’une configuration de base de données de production puisse être ajoutée à l’avenir avec des modifications minimales.
Prérequis
- Base de données SQL existante.
- Un client de gestion des données
- Si aucun client n’est installé, installez Azure Data Studio
- INTERFACE CLI du générateur d’API de données. Installer CLI
table et données SQL Create
Create une table avec des données fictives à utiliser dans cet exemple de scénario.
Connectez-vous au serveur SQL et à la base de données à l’aide de votre client ou outil préféré. Les exemples incluent, mais ne sont pas limités à : SQL Server Management Studio, Azure Data Studio et l’extension SQL Server pour Visual Studio Code.
Create une table nommée
Books
avecid
les colonnes etname
.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
Insérez quatre exemples de lignes de livre dans le
Books
tableau.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
Testez vos données avec une requête simple
SELECT *
.SELECT * FROM dbo.Books
Create fichier de configuration de base
Create un fichier de configuration de base de référence à l’aide de l’interface CLI DAB.
Create un fichier de configuration classique à l’aide de
dab init
.dab init --database-type "mssql" --host-mode "Development"
Ajoutez une entité Book à l’aide de
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Observez votre fichier de configuration dab-config.json actuel. Le fichier doit inclure une implémentation de base de votre API avec une seule entité, un point de terminaison d’API REST et un point de terminaison 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 fichier de variables d’environnement
À présent, ajoutez un fichier d’environnement pour stocker les variables d’environnement pour DAB.
- Create un fichier nommé
.env
dans le même répertoire que les fichiers de configuration de l’interface CLI DAB.
Notes
Le .env
nom de fichier, comme .gitignore
les fichiers et .editorconfig
n’a pas de nom de fichier, uniquement une extension de fichier. Le nom ne respecte pas la casse, mais la convention est en minuscules.
Ajoutez une variable d’environnement
DAB_ENVIRONMENT
avec la valeur .Development
Ajoutez également une variable d’environnementSQL_DOCKER_CONNECTION_STRING
avec votre base de données chaîne de connexion.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create fichier de configuration de l’environnement
Enfin, ajoutez un fichier de configuration de développement avec le delta entre votre configuration actuelle et la configuration de l’environnement souhaitée.
Créez un fichier
dab-config.Development.json
. Ajoutez le contenu suivant pour utiliser la@env()
fonction afin de définir votreconnection-string
valeur dans l’environnement de développement.{ "$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')" } }
Enregistrez vos modifications dans .env, dab-config.json et dab-config. Development.json fichiers.
Configuration des tests
Utilisez
dab start
pour valider le démarrage de l’outil comme prévu.dab start
La sortie de l’outil doit inclure l’adresse à utiliser pour accéder à l’API en cours d’exécution.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Conseil
Dans cet exemple, l’application s’exécute sur le
localhost
port 5000. Votre application en cours d’exécution peut avoir une adresse et un port différents.Tout d’abord, essayez l’API manuellement en émettant une requête GET à
/api/Book
.Conseil
Dans cet exemple, l’URL serait
https://localhost:5000/api/Book
. Vous pouvez accéder à cette URL à l’aide de votre navigateur web.Ensuite, accédez à la page de documentation Swagger à l’adresse
/swagger
.Conseil
Dans cet exemple, l’URL serait
<https://localhost:5000/swagger
. Là encore, vous pouvez accéder à cette URL à l’aide de votre navigateur web.Enfin, essayez le point de terminaison GraphQL en accédant à
/graphql
et en exécutant cette opération.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Conseil
Dans cet exemple, l’URL serait
https://localhost:5000/graphql
. Là encore, vous pouvez accéder à cette URL à l’aide de votre navigateur web.