Rychlý start: Použití Tvůrce rozhraní Data API s SQL

V tomto rychlém startu vytvoříte koncové body REST a GraphQL pro místní databázi SQL pomocí Tvůrce rozhraní Data API (DAB). Začněte výběrem databázového stroje.

Předpoklady

Instalovat Data API builder CLI

Nainstalujte balíček Microsoft.DataApiBuilder z NuGetu jako nástroj .NET.

  1. Použijte dotnet tool install k instalaci nejnovější verze Microsoft.DataApiBuilder s argumentem --global.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Poznámka:

    Pokud je balíček již nainstalován, aktualizujte balíček místo toho pomocí dotnet tool update.

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. Pomocí argumentu dotnet tool list ověřte, že je nástroj nainstalovaný--global.

    dotnet tool list --global
    

Stažení obrazu databáze

Návod

Už máte databázi? Přejděte k Vytvoření a naplnění databáze, spusťte skript SQL pro váš stroj, a poté přejděte na nastavení Data API builderu s vlastním připojovacím řetězcem.

Stáhněte si image Dockeru pro databázový stroj. Tento krok může trvat několik minut v závislosti na rychlosti připojení.

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

Spuštění databáze

Spusťte místní instanci databáze v Dockeru.

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

Návod

Pokud se port 1433 už používá (například místní instalací SQL Serveru), přejděte --publish na jiný port hostitele, například 1434:1433 a aktualizujte Server=localhost,1433Server=localhost,1434 ho v dalších krocích.

Před spuštěním dalšího příkazu ověřte, že je databázový stroj připravený.

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

Pokud se vrátí chyba, počkejte několik sekund a zkuste to znovu.

Vytvořit a naplnit databázi

todos Vytvořte databázi a tabulku a přidejte ukázková data. Pokud používáte Docker, není potřeba žádný klient SQL –docker exec spouští příkazy přímo uvnitř kontejneru. Pokud používáte vlastní databázi, spusťte skript SQL v preferovaném nástroji.

  1. Vytvořte databázi.

    docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"
    
  2. Vytvořte tabulku a přidejte ukázková data.

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

Návod

Používáte vlastní SQL Server? Spusťte tento skript přímo:

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

Konfigurace tvůrce rozhraní Data API

Vytvořte konfigurační soubor DAB a přidejte entitu todo .

Návod

Používáte vlastní databázi? Nahraďte připojovací řetězec dab init vlastním řetězcem:

  • 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. Inicializuje konfiguraci.

    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. Přidejte entitu Todo .

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

Soubor dab-config.json by teď měl vypadat podobně jako v následujícím příkladu:

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

Návod

Příkazy dab init a dab add můžete přeskočit a vytvořit soubor dab-config.json přímo s obsahem uvedeným zde.

Spuštění rozhraní API

Slouží dab start ke spuštění nástroje a vytvoření koncových bodů rozhraní API pro vaši entitu.

dab start

Výstup by měl obsahovat adresu spuštěného rozhraní API.

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

Návod

V tomto příkladu aplikace běží na localhost portu 5000. Spuštěná aplikace může mít jinou adresu a port.

Testování rozhraní API

  1. Otevřete prohlížeč a přejděte do koncového bodu REST pro entitu Todo .

    http://localhost:5000/api/Todo
    
  2. Odpověď JSON by měla obsahovat všechny tři položky úkolů.

    {
      "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. Přejděte na stránku dokumentace Swaggeru na adrese /swagger.

    http://localhost:5000/swagger
    

Vytvoření webové aplikace

Zobrazte své úkoly v prohlížeči pomocí prostého souboru HTML. Vytvořte soubor s názvem todo.html pomocí koncového bodu REST nebo 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>

Otevřete todo.html v prohlížeči. Stránka načte všechny položky úkolů a vykreslí je jako seznam s dokončenými položkami zobrazenými v přeškrtnutí.

Důležité

Nastavení cors ve vaší konfiguraci umožňuje této HTML souboru, který je otevřený z místního systému souborů, volat rozhraní API. Bez něj prohlížeč zablokuje požadavek.

Vyčištění

Až budete hotovi, zastavte a odeberte kontejner Dockeru.

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

Další krok