Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
- Docker(volitelné, pokud už máte databázi)
- .NET 8 (nebo novější)
Instalovat Data API builder CLI
Nainstalujte balíček Microsoft.DataApiBuilder z NuGetu jako nástroj .NET.
Použijte
dotnet tool installk instalaci nejnovější verzeMicrosoft.DataApiBuilders argumentem--global.dotnet tool install --global Microsoft.DataApiBuilderPoznámka:
Pokud je balíček již nainstalován, aktualizujte balíček místo toho pomocí
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderPomocí argumentu
dotnet tool listověř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.
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;"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>;
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;"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
Otevřete prohlížeč a přejděte do koncového bodu REST pro entitu Todo .
http://localhost:5000/api/TodoOdpověď 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 } ] }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