Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Docker(opcjonalnie, jeśli masz już bazę danych)
- .NET 8 (lub nowsze)
Zainstaluj narzędzie linii poleceń do budowy API danych
Zainstaluj pakiet Microsoft.DataApiBuilder z narzędzia NuGet jako narzędzie .NET.
Użyj
dotnet tool install, aby zainstalować najnowszą wersjęMicrosoft.DataApiBuilderza pomocą argumentu--global.dotnet tool install --global Microsoft.DataApiBuilderUwaga / Notatka
Jeśli pakiet jest już zainstalowany, zaktualizuj pakiet przy użyciu polecenia
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderSprawdź, czy narzędzie jest zainstalowane za pomocą
dotnet tool listz 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.
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;"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>;
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;"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
Otwórz przeglądarkę i przejdź do punktu końcowego REST dla jednostki Todo .
http://localhost:5000/api/TodoOdpowiedź 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 } ] }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