Udostępnij za pośrednictwem


Szybki start: używanie kreatora interfejsu API danych z SQL

W tej szybkiej instrukcji utworzysz punkty końcowe REST i GraphQL dla lokalnej bazy danych SQL za pomocą narzędzia Buildera API Danych (DAB). Wybierz silnik bazy danych, aby rozpocząć.

Wymagania wstępne

Zainstaluj narzędzie linii poleceń do budowy API danych

Zainstaluj pakiet Microsoft.DataApiBuilder z narzędzia NuGet jako narzędzie .NET.

  1. Użyj dotnet tool install, aby zainstalować najnowszą wersję Microsoft.DataApiBuilder za pomocą argumentu --global.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Uwaga / Notatka

    Jeśli pakiet jest już zainstalowany, zaktualizuj pakiet przy użyciu polecenia dotnet tool update.

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. Sprawdź, czy narzędzie jest zainstalowane za pomocą dotnet tool list z użyciem argumentu --global.

    dotnet tool list --global
    

Ściąganie obrazu bazy danych

Wskazówka

Masz już bazę danych? Przejdź do Utwórz i zapełnij bazę danych, uruchom skrypt SQL dla silnika, a następnie przejdź do Konfiguracja narzędzia do interfejsu API danych przy użyciu własnego łańcucha połączenia.

Pobierz obraz Dockera dla silnika bazy danych. Ten krok może potrwać kilka minut w zależności od szybkości połączenia.

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

Uruchamianie bazy danych

Uruchom lokalne wystąpienie bazy danych w Dockerze.

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

Wskazówka

Jeśli port 1433 jest już używany (na przykład przez lokalną instalację programu SQL Server), zmień --publish na inny port hosta, taki jak 1434:1433 i zaktualizuj Server=localhost,1433 do Server=localhost,1434 w kolejnych krokach.

Przed uruchomieniem następnego polecenia sprawdź, czy aparat bazy danych jest gotowy.

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

Jeśli zostanie zwrócony błąd, zaczekaj kilka sekund i spróbuj ponownie.

Tworzenie i rozmieszczanie bazy danych

Utwórz bazę danych i tabelę todos , a następnie dodaj przykładowe dane. Jeśli używasz platformy Docker, nie jest wymagany żaden klient SQL —docker exec uruchamia polecenia bezpośrednio wewnątrz kontenera. Jeśli używasz własnej bazy danych, uruchom skrypt SQL w preferowanym narzędziu.

  1. Utwórz bazę danych.

    docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"
    
  2. Utwórz tabelę i dodaj przykładowe dane.

    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);"
    

Wskazówka

Korzystanie z własnego programu SQL Server? Uruchom ten skrypt bezpośrednio:

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);

Konfigurowanie konstruktora interfejsu API danych

Utwórz plik konfiguracji języka DAB i dodaj jednostkę Todo .

Wskazówka

Używasz własnej bazy danych? Zastąp ciąg połączenia w dab init własnym ciągiem:

  • 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. Zainicjuj konfigurację.

    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. Dodaj jednostkę Todo .

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

Plik dab-config.json powinien teraz wyglądać podobnie do poniższego przykładu:

{
  "$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": [
            "*"
          ]
        }
      ]
    }
  }
}

Wskazówka

Możesz pominąć dab init i dab add polecenia i utworzyć plik dab-config.json bezpośrednio z zawartością pokazaną tutaj.

Uruchamianie interfejsu API

Użyj dab start, aby uruchomić narzędzie i utworzyć punkty końcowe interfejsu API dla jednostki.

dab start

Dane wyjściowe powinny zawierać adres uruchomionego interfejsu API.

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

Wskazówka

W tym przykładzie aplikacja działa na localhost porcie 5000. Uruchomiona aplikacja może mieć inny adres i port.

Testowanie interfejsu API

  1. Otwórz przeglądarkę i przejdź do punktu końcowego REST dla jednostki Todo .

    http://localhost:5000/api/Todo
    
  2. Odpowiedź JSON powinna zawierać wszystkie trzy pozycje zadań do wykonania.

    {
      "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. Przejdź do strony dokumentacji Swagger pod /swagger.

    http://localhost:5000/swagger
    

Tworzenie aplikacji internetowej

W przeglądarce wyświetlaj swoje zadania przy użyciu zwykłego pliku HTML. Utwórz plik o nazwie todo.html przy użyciu punktu końcowego REST lub 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>

Otwórz todo.html w przeglądarce. Strona pobiera wszystkie elementy zadań do wykonania i renderuje je jako listę z ukończonymi elementami wyświetlanymi w przekreśleniu.

Ważna

Ustawienie cors w konfiguracji pozwala temu plikowi HTML — otwartemu z lokalnego systemu plików — na wywołanie interfejsu API. Bez niego przeglądarka blokuje żądanie.

Czyszczenie

Zatrzymaj i usuń kontener Docker po zakończeniu.

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

Następne kroki