Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart maakt u REST- en GraphQL-eindpunten voor een lokale SQL-database met behulp van Data API Builder (DAB). Kies uw database-engine om aan de slag te gaan.
Vereiste voorwaarden
- Docker(optioneel als u al een database hebt)
- .NET 8 (of hoger)
De DATA API Builder CLI installeren
Installeer het Microsoft.DataApiBuilder-pakket van NuGet als een .NET-hulpprogramma.
Gebruik
dotnet tool installom de nieuwste versie van deMicrosoft.DataApiBuildermet het argument--globalte installeren.dotnet tool install --global Microsoft.DataApiBuilderOpmerking
Als het pakket al is geïnstalleerd, werkt u het pakket bij met behulp van
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderControleer of het hulpprogramma is geïnstalleerd met
dotnet tool listbehulp van het--globalargument.dotnet tool list --global
De database-image ophalen
Aanbeveling
Hebt u al een database? Ga verder met het maken en seeden van de database, voer het SQL-script voor uw engine uit en ga vervolgens naar Data API Builder configureren met uw eigen verbindingsreeks.
Download de Docker-image voor uw databasesysteem. Deze stap kan enkele minuten duren, afhankelijk van de verbindingssnelheid.
docker pull mcr.microsoft.com/mssql/server:2025-latest
De database starten
Voer een lokaal database-exemplaar uit in Docker.
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
Aanbeveling
Als de poort 1433 al in gebruik is (bijvoorbeeld door een lokale SQL Server-installatie), wijzig --publish naar een andere hostpoort, zoals 1434:1433, en werk Server=localhost,1433 bij naar Server=localhost,1434 in latere stappen.
Controleer of de database-engine gereed is voordat u de volgende opdracht uitvoert.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Als er een fout wordt geretourneerd, wacht dan een paar seconden en probeer het opnieuw.
De database maken en seeden
Maak een todos database en tabel en voeg vervolgens voorbeeldgegevens toe. Als u Docker gebruikt, is er geen SQL-client nodigdocker exec . De opdrachten worden rechtstreeks in de container uitgevoerd. Als u uw eigen database gebruikt, voert u het SQL-script uit in het hulpprogramma van uw voorkeur.
Maak de database.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Maak de tabel en voeg voorbeeldgegevens toe.
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);"
Aanbeveling
Gebruikt u uw eigen SQL Server? Voer dit script rechtstreeks uit:
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);
Opbouwfunctie voor gegevens-API's configureren
Maak een DAB-configuratiebestand en voeg een Takentiteit toe.
Aanbeveling
Gebruikt u uw eigen database? Vervang de verbindingsreeks in dab init met uw eigen verbindingsreeks:
-
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>;
Initialiseer de configuratie.
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;"Voeg de entiteit Todo toe.
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
Uw dab-config.json bestand moet er nu uitzien zoals in het volgende voorbeeld:
{
"$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": [
"*"
]
}
]
}
}
}
Aanbeveling
U kunt de dab init en dab add opdrachten overslaan en het dab-config.json bestand rechtstreeks maken met de inhoud die hier wordt weergegeven.
De API starten
Gebruik dab start dit om het hulpprogramma uit te voeren en API-eindpunten voor uw entiteit te maken.
dab start
De uitvoer moet het adres van de actieve API bevatten.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Aanbeveling
In dit voorbeeld wordt de toepassing uitgevoerd op localhost poort 5000. Uw actieve toepassing heeft mogelijk een ander adres en een andere poort.
De API testen
Open uw browser en navigeer naar het REST-eindpunt voor de Todo-entiteit.
http://localhost:5000/api/TodoHet JSON-antwoord moet alle drie de to-do items bevatten.
{ "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 } ] }Ga naar de Swagger-documentatiepagina op
/swagger.http://localhost:5000/swagger
Een web-app bouwen
Geef uw todos weer in een browser met behulp van een gewoon HTML-bestand. Maak een bestand met de naam todo.html met behulp van het REST- of GraphQL-eindpunt.
<!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>
Open todo.html in je browser. De pagina haalt alle to-do items op en geeft ze weer als een lijst, met voltooide items die worden weergegeven als doorgestreept.
Belangrijk
Met de cors instelling in uw configuratie kan dit HTML-bestand( geopend vanuit uw lokale bestandssysteem) de API aanroepen. Zonder deze methode blokkeert de browser de aanvraag.
Schoonmaken
Stop en verwijder de Docker-container wanneer u klaar bent.
docker stop dab-mssql && docker rm dab-mssql