Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban REST- és GraphQL-végpontokat hoz létre egy helyi SQL-adatbázishoz a Data API Builder (DAB) használatával. Első lépésként válassza ki az adatbázismotort.
Előfeltételek
- Docker(nem kötelező, ha már rendelkezik adatbázissal)
- .NET 8 (vagy újabb)
A Data API builder parancssori felületének telepítése
A Microsoft.DataApiBuilder csomagot telepítse a NuGetből, mint egy .NET-eszköz.
Használja a
dotnet tool install-t aMicrosoft.DataApiBuilderlegújabb verziójának telepítéséhez a--globalargumentummal.dotnet tool install --global Microsoft.DataApiBuilderMegjegyzés:
Ha a csomag már telepítve van, frissítse a csomagot a következővel
dotnet tool update: .dotnet tool update --global Microsoft.DataApiBuilderEllenőrizze, hogy az eszköz telepítve van-e a
dotnet tool list--globalargumentum használatával.dotnet tool list --global
Az adatbázis lemezképének lekérése
Jótanács
Már van adatbázisa? Ugorjon az adatbázis létrehozására és inicializálására, futtassa a motorhoz tartozó SQL-szkriptet, majd lépjen tovább a Data API builder konfigurálására saját kapcsolati karakterláncával.
Töltse le az adatbázismotor Docker-rendszerképét. Ez a lépés a kapcsolat sebességétől függően eltarthat néhány percig.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Az adatbázis indítása
Futtasson egy helyi adatbázispéldányt a Dockerben.
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
Jótanács
Ha a port 1433 már használatban van (például egy helyi SQL Server-telepítés esetén), módosítsa --publish egy másik, például 1434:1433 gazdagépportra, és a későbbi lépésekben frissítse Server=localhost,1433 értékét Server=localhost,1434-re.
Ellenőrizze, hogy az adatbázismotor készen áll-e a következő parancs futtatása előtt.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Ha ez hibát ad vissza, várjon néhány másodpercet, és próbálkozzon újra.
Az adatbázis létrehozása és üzembe helyezése
Hozzon létre egy adatbázist és egy todos táblát, majd adjon hozzá mintaadatokat. Docker használata esetén nincs szükség SQL-ügyfélre –docker exec a parancsokat közvetlenül a tárolón belül futtatja. Ha saját adatbázist használ, futtassa az SQL-szkriptet az előnyben részesített eszközben.
Hozza létre az adatbázist.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Hozza létre a táblát, és adjon hozzá mintaadatokat.
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);"
Jótanács
Saját SQL Servert használ? Futtassa közvetlenül ezt a szkriptet:
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);
A Data API Builder konfigurálása
Hozzon létre egy DAB-konfigurációs fájlt, és adjon hozzá egy Todo-entitást .
Jótanács
Saját adatbázist használ? Cserélje le a dab init kapcsolati karakterláncot a sajátjára.
-
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>;
Inicializálja a konfigurációt.
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;"Adja hozzá a Todo entitást .
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
A dab-config.json fájlnak most az alábbi példához hasonlóan kell kinéznie:
{
"$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": [
"*"
]
}
]
}
}
}
Jótanács
A dab init és dab add parancsokat kihagyhatja, és közvetlenül létrehozhatja a dab-config.json fájlt az itt látható tartalommal.
Az API indítása
Az eszköz futtatására és API-végpontok létrehozására használható dab start az entitás számára.
dab start
A kimenetnek tartalmaznia kell a futó API címét.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Jótanács
Ebben a példában az alkalmazás az localhost porton fut. Előfordulhat, hogy a futó alkalmazás címe és portja eltérő.
Az API tesztelése
Nyissa meg a böngészőt, és lépjen a Todo entitás REST-végpontjához.
http://localhost:5000/api/TodoA JSON-válasznak tartalmaznia kell mind a három teendőelemet.
{ "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 } ] }Lépjen a Swagger dokumentációs oldalára a következő címen
/swagger: .http://localhost:5000/swagger
Webalkalmazás létrehozása
Megjelenítheti a todosokat egy böngészőben egy egyszerű HTML-fájl használatával. Hozzon létre egy REST vagy GraphQL végponttal elnevezett todo.html fájlt.
<!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>
Nyissa meg todo.html a böngészőben. A lap lekéri az összes teendőelemet, és listában jeleníti meg őket, a kész elemek pedig áthúzva jelennek meg.
Fontos
A cors konfigurációban megadott beállítás lehetővé teszi, hogy ez a HTML-fájl – amelyet a helyi fájlrendszerből nyitnak meg – meghívja az API-t. Nélküle a böngésző letiltja a kérést.
Takarítás
Ha elkészült, állítsa le és távolítsa el a Docker-tárolót.
docker stop dab-mssql && docker rm dab-mssql