Freigeben über


Schnellstart: Verwenden des Daten-API-Generators mit SQL

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

Installieren des Daten-API-Generators CLI

Installieren Sie das Microsoft.DataApiBuilder Paket von NuGet als .NET-Tool.

  1. Verwenden Sie dotnet tool install, um die neueste Version von Microsoft.DataApiBuilder mit dem Argument --global zu installieren.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Hinweis

    Wenn das Paket bereits installiert ist, aktualisieren Sie das Paket stattdessen mithilfe von dotnet tool update.

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. Stellen Sie sicher, dass das Tool mit dem Argument dotnet tool list installiert ist, indem Sie --global verwenden.

    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.

  1. 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;"
    
  2. 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>;
  1. 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;"
    
  2. 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

  1. Öffnen Sie Ihren Browser, und navigieren Sie zum REST-Endpunkt für die Todo-Entität .

    http://localhost:5000/api/Todo
    
  2. Die 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 }
      ]
    }
    
  3. 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

Nächster Schritt