Partager via


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

table et données SQL Create

Create une table avec des données fictives à utiliser dans cet exemple de scénario.

  1. 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.

  2. Create une table nommée Books avec id les colonnes et name .

    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
    
  3. 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
    
  4. 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.

  1. Create un fichier de configuration classique à l’aide de dab init.

    dab init --database-type "mssql" --host-mode "Development"
    
  2. Ajoutez une entité Book à l’aide de dab add.

    dab add Book --source "dbo.Books" --permissions "anonymous:*"
    
  3. 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.

  1. 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.

  1. Ajoutez une variable d’environnement DAB_ENVIRONMENT avec la valeur .Development Ajoutez également une variable d’environnement SQL_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.

  1. Créez un fichier dab-config.Development.json . Ajoutez le contenu suivant pour utiliser la @env() fonction afin de définir votre connection-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')"
      }
    }
    
  2. Enregistrez vos modifications dans .env, dab-config.json et dab-config. Development.json fichiers.

Configuration des tests

  1. Utilisez dab start pour valider le démarrage de l’outil comme prévu.

    dab start
    
  2. 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.

  3. 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.

  4. 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.

  5. 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.