Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erstellen Sie REST- und GraphQL-Endpunkte für eine lokale SQL-Datenbank mithilfe des Daten-API-Generators (DAB). Wählen Sie Ihr Datenbankmodul aus, um zu beginnen.
Voraussetzungen
- Docker(optional, wenn Sie bereits über eine Datenbank verfügen)
- .NET 8 (oder höher)
Installieren des Daten-API-Generators CLI
Installieren Sie das Microsoft.DataApiBuilder Paket von NuGet als .NET-Tool.
Verwenden Sie
dotnet tool install, um die neueste Version vonMicrosoft.DataApiBuildermit dem Argument--globalzu installieren.dotnet tool install --global Microsoft.DataApiBuilderHinweis
Wenn das Paket bereits installiert ist, aktualisieren Sie das Paket stattdessen mithilfe von
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderStellen Sie sicher, dass das Tool mit dem Argument
dotnet tool listinstalliert ist, indem Sie--globalverwenden.dotnet tool list --global
Datenbankbild abrufen
Tipp
Haben Sie bereits eine Datenbank? Springen Sie zu Erstellen und Vorbereiten der Datenbank, führen Sie das SQL-Skript für Ihre Datenbankmaschine aus, und verwenden Sie dann Ihre eigene Verbindungszeichenfolge, um zum Konfigurieren des Daten-API-Baukastens zu gelangen.
Laden Sie das Docker-Image für Ihr Datenbankmodul herunter. Dieser Schritt kann je nach Verbindungsgeschwindigkeit einige Minuten dauern.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Starten der Datenbank
Führen Sie eine lokale Datenbankinstanz in Docker aus.
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
Tipp
Wenn der Port 1433 bereits verwendet wird (z. B. durch eine lokale SQL Server-Installation), ändern Sie --publish in einen anderen Hostport wie 1434:1433 und aktualisieren Sie Server=localhost,1433 auf Server=localhost,1434 in späteren Schritten.
Stellen Sie sicher, dass das Datenbankmodul bereit ist, bevor Sie den nächsten Befehl ausführen.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Wenn dieser Fehler zurückgibt, warten Sie einige Sekunden, und versuchen Sie es erneut.
Datenbank erstellen und mit Daten füllen
Erstellen Sie eine todos Datenbank und Tabelle, und fügen Sie dann Beispieldaten hinzu. Wenn Sie Docker verwenden, ist kein SQL-Client erforderlich–docker exec führt die Befehle direkt im Container aus. Wenn Sie Ihre eigene Datenbank verwenden, führen Sie das SQL-Skript in Ihrem bevorzugten Tool aus.
Erstellen Sie die Datenbank.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Erstellen Sie die Tabelle, und fügen Sie Beispieldaten hinzu.
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);"
Tipp
Verwenden Sie Ihren eigenen SQL Server? Führen Sie dieses Skript direkt aus:
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);
Konfigurieren des Daten-API-Generators
Erstellen Sie eine DAB-Konfigurationsdatei, und fügen Sie eine Todo-Entität hinzu.
Tipp
Verwenden Sie Ihre eigene Datenbank? Ersetzen Sie die Verbindungszeichenfolge dab init durch Ihre eigenen:
-
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>;
Initialisieren Sie die Konfiguration.
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;"Fügen Sie die Todo-Entität hinzu.
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
Ihre dab-config.json Datei sollte nun ähnlich wie im folgenden Beispiel aussehen:
{
"$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": [
"*"
]
}
]
}
}
}
Tipp
Sie können die Befehle dab init und dab add überspringen und die Datei dab-config.json direkt mit dem hier gezeigten Inhalt erstellen.
Starten der API
Verwenden Sie dab start, um das Tool auszuführen und API-Endpunkte für Ihre Entität zu erstellen.
dab start
Die Ausgabe sollte die Adresse der ausgeführten API enthalten.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Tipp
In diesem Beispiel wird die Anwendung an Port localhost ausgeführt. Ihre ausgeführte Anwendung verfügt möglicherweise über eine andere Adresse und einen anderen Port.
Testen der API
Öffnen Sie Ihren Browser, und navigieren Sie zum REST-Endpunkt für die Todo-Entität .
http://localhost:5000/api/TodoDie JSON-Antwort sollte alle drei Todo-Elemente enthalten.
{ "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 } ] }Navigieren Sie zur Dokumentationsseite von Swagger unter
/swagger.http://localhost:5000/swagger
Erstellen einer Web-App
Zeigen Sie Ihre Todos in einem Browser mithilfe einer einfachen HTML-Datei an. Erstellen Sie eine Datei mit dem Namen todo.html entweder mithilfe des REST- oder GraphQL-Endpunkts.
<!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>
Öffnen Sie todo.html in Ihrem Browser. Die Seite ruft alle Aufgabenelemente ab und rendert sie als Liste, wobei abgeschlossene Elemente durchgestrichen angezeigt werden.
Von Bedeutung
Mit der Einstellung cors in Ihrer Konfiguration kann diese HTML-Datei, die über Ihr lokales Dateisystem geöffnet wird, die API aufrufen. Ohne dies blockiert der Browser die Anforderung.
Aufräumen
Beenden Und entfernen Sie den Docker-Container, wenn Sie fertig sind.
docker stop dab-mssql && docker rm dab-mssql