Rövid útmutató: A Data API Builder használata az SQL-lel

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

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.

  1. Használja a dotnet tool install-t a Microsoft.DataApiBuilder legújabb verziójának telepítéséhez a --global argumentummal.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Megjegyzé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.DataApiBuilder
    
  2. Ellenőrizze, hogy az eszköz telepítve van-e a dotnet tool list--global argumentum 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.

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

  1. Nyissa meg a böngészőt, és lépjen a Todo entitás REST-végpontjához.

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

Következő lépés