Partager via


Démarrage rapide : Utiliser le générateur d’API de données avec SQL

Dans ce guide de démarrage rapide, vous allez créer des points de terminaison REST et GraphQL pour une base de données SQL locale à l’aide du générateur d’API de données (DAB). Choisissez votre moteur de base de données pour commencer.

Prerequisites

Installer l’interface CLI du générateur d’API de données

Installez le package Microsoft.DataApiBuilder à partir de NuGet en tant qu’outil .NET.

  1. Utilisez dotnet tool install pour installer la dernière version de Microsoft.DataApiBuilder avec l'argument --global.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Note

    Si le paquet est déjà installé, mettez à jour le paquet à l'aide de dotnet tool update.

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. Vérifiez que l'outil est installé avec dotnet tool list en utilisant l'argument --global.

    dotnet tool list --global
    

Récupérer l'image de la base de données

Conseil / Astuce

Vous disposez déjà d’une base de données ? Passez à Créer et remplir la base de données, exécutez le script SQL pour votre moteur, puis accédez à Data API Builder avec votre propre chaîne de connexion.

Téléchargez l’image Docker pour votre moteur de base de données. Cette étape peut prendre quelques minutes en fonction de la vitesse de connexion.

docker pull mcr.microsoft.com/mssql/server:2025-latest

Démarrer la base de données

Exécutez une instance de base de données locale dans Docker.

docker run --name dab-mssql --env "ACCEPT_EULA=Y" --env "MSSQL_SA_PASSWORD=P@ssw0rd1" --publish 1433:1433 --detach mcr.microsoft.com/mssql/server:2025-latest

Conseil / Astuce

Si le port 1433 est déjà utilisé (par exemple, par une installation locale de SQL Server), passez --publish à un autre port hôte comme 1434:1433 et effectuez une mise à Server=localhost,1433 jour Server=localhost,1434 dans les étapes ultérieures.

Vérifiez que le moteur de base de données est prêt avant d’exécuter la commande suivante.

docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"

Si cela retourne une erreur, patientez quelques secondes et réessayez.

Créer et peupler la base de données

Créez une base de données et une table, puis ajoutez des todos exemples de données. Si vous utilisez Docker, aucun client SQL n’est nécessaire :docker exec exécute les commandes directement à l’intérieur du conteneur. Si vous utilisez votre propre base de données, exécutez le script SQL dans votre outil préféré.

  1. Créez la base de données.

    docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"
    
  2. Créez la table et ajoutez des exemples de données.

    docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -d todos -Q "CREATE TABLE dbo.todos (id int PRIMARY KEY, title nvarchar(100) NOT NULL, completed bit NOT NULL DEFAULT 0); INSERT INTO dbo.todos VALUES (1, 'Walk the dog', 0), (2, 'Feed the fish', 0), (3, 'Comb the cat', 1);"
    

Conseil / Astuce

À l’aide de votre propre serveur SQL Server ? Exécutez ce script directement :

CREATE DATABASE todos;
GO
USE todos;
GO
CREATE TABLE dbo.todos (id int PRIMARY KEY, title nvarchar(100) NOT NULL, completed bit NOT NULL DEFAULT 0);
INSERT INTO dbo.todos VALUES (1, 'Walk the dog', 0), (2, 'Feed the fish', 0), (3, 'Comb the cat', 1);

Configurer le générateur d’API de données

Créez un fichier de configuration DAB et ajoutez une entité Todo .

Conseil / Astuce

À l’aide de votre propre base de données ? Remplacez la chaîne de connexion dans dab init avec la vôtre.

  • SQL Server :Server=<host>,<port>;Database=todos;User Id=<user>;Password=<password>;TrustServerCertificate=true;Encrypt=true;
  • Postgresql:Host=<host>;Port=5432;Database=todos;User ID=<user>;Password=<password>;
  • Mysql:Server=<host>;Port=3306;Database=todos;User=<user>;Password=<password>;
  1. Initialisez la configuration.

    dab init --database-type "mssql" --host-mode "Development" --connection-string "Server=localhost,1433;Database=todos;User Id=sa;Password=P@ssw0rd1;TrustServerCertificate=true;Encrypt=true;"
    
  2. Ajoutez l’entité Todo .

    dab add Todo --source "dbo.todos" --permissions "anonymous:*"
    

Votre dab-config.json fichier doit maintenant ressembler à l’exemple suivant :

{
  "$schema": "https://github.com/Azure/data-api-builder/releases/download/vmajor.minor.patch/dab.draft.schema.json",
  "data-source": {
    "database-type": "mssql",
    "connection-string": "Server=localhost,1433;Database=todos;User Id=sa;Password=P@ssw0rd1;TrustServerCertificate=true;Encrypt=true;"
  },
  "runtime": {
    "rest": {
      "enabled": true
    },
    "graphql": {
      "enabled": true
    },
    "host": {
      "mode": "development",
      "cors": {
        "origins": ["*"]
      }
    }
  },
  "entities": {
    "Todo": {
      "source": "dbo.todos",
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "*"
          ]
        }
      ]
    }
  }
}

Conseil / Astuce

Vous pouvez ignorer les commandes dab init et dab add et créer directement le fichier dab-config.json avec le contenu affiché ici.

Démarrer l’API

Permet dab start d’exécuter l’outil et de créer des points de terminaison d’API pour votre entité.

dab start

La sortie doit inclure l’adresse de l’API en cours d’exécution.

      Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: <http://localhost:5000>

Conseil / Astuce

Dans cet exemple, l’application s’exécute sur localhost le port 5000. Votre application en cours d’exécution peut avoir une adresse et un port différents.

Tester l’API

  1. Ouvrez votre navigateur et accédez au point de terminaison REST de l’entité Todo .

    http://localhost:5000/api/Todo
    
  2. La réponse JSON doit inclure les trois éléments todo.

    {
      "value": [
        { "id": 1, "title": "Walk the dog", "completed": false },
        { "id": 2, "title": "Feed the fish", "completed": false },
        { "id": 3, "title": "Comb the cat", "completed": true }
      ]
    }
    
  3. Accédez à la page de documentation Swagger à l’adresse /swagger.

    http://localhost:5000/swagger
    

Créer une application web

Affichez vos tâches dans un navigateur à l’aide d’un fichier HTML simple. Créez un fichier nommé todo.html à l’aide du point de terminaison REST ou GraphQL.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Todo App</title>
  <style>
    body { font-family: sans-serif; max-width: 400px; margin: 2rem auto; }
    li.done { text-decoration: line-through; color: gray; }
    #error { color: red; }
  </style>
</head>
<body>
  <h1>Todos</h1>
  <ul id="list"></ul>
  <p id="error"></p>
  <script>
    fetch('http://localhost:5000/api/Todo')
      .then(r => r.json())
      .then(data => {
        const ul = document.getElementById('list');
        data.value.forEach(todo => {
          const li = document.createElement('li');
          li.textContent = todo.title;
          if (todo.completed) li.className = 'done';
          ul.appendChild(li);
        });
      })
      .catch(() => {
        document.getElementById('error').textContent =
          'Could not reach the API. Make sure DAB is running on http://localhost:5000.';
      });
  </script>
</body>
</html>

Ouvrez todo.html dans votre navigateur. La page récupère tous les éléments todo et les affiche sous forme de liste, avec les éléments terminés affichés dans la barre d’extraction.

Important

Le cors paramètre de votre configuration permet à ce fichier HTML , ouvert à partir de votre système de fichiers local, d’appeler l’API. Sans cela, le navigateur bloque la requête.

Nettoyage

Arrêtez et supprimez le conteneur Docker lorsque vous avez terminé.

docker stop dab-mssql && docker rm dab-mssql

Étape suivante