Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- Docker(facultatif si vous avez déjà une base de données)
- .NET 8 (ou version ultérieure)
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.
Utilisez
dotnet tool installpour installer la dernière version deMicrosoft.DataApiBuilderavec l'argument--global.dotnet tool install --global Microsoft.DataApiBuilderNote
Si le paquet est déjà installé, mettez à jour le paquet à l'aide de
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderVérifiez que l'outil est installé avec
dotnet tool listen 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é.
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;"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>;
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;"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
Ouvrez votre navigateur et accédez au point de terminaison REST de l’entité Todo .
http://localhost:5000/api/TodoLa 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 } ] }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