Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você cria pontos de extremidade REST e GraphQL para um banco de dados SQL local usando o DAB (Construtor de API de Dados). Escolha seu mecanismo de banco de dados para começar.
Pré-requisitos
- Docker(opcional se você já tiver um banco de dados)
- .NET 8 (ou mais recente)
Instalar a CLI do construtor de API de Dados
Instale o pacote Microsoft.DataApiBuilder do NuGet como uma ferramenta de .NET.
Use
dotnet tool installpara instalar a versão mais recente doMicrosoft.DataApiBuildercom o argumento--global.dotnet tool install --global Microsoft.DataApiBuilderObservação
Se o pacote já estiver instalado, atualize o pacote usando
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderVerifique se a ferramenta está instalada usando
dotnet tool listo--globalargumento.dotnet tool list --global
Efetuar pull da imagem do banco de dados
Dica
Já tem um banco de dados? Pule para criar e propagar o banco de dados, execute o script SQL para o mecanismo e, em seguida, vá para Configurar o construtor de API de Dados com sua própria cadeia de conexão.
Baixe a imagem do Docker para o mecanismo de banco de dados. Essa etapa pode levar alguns minutos dependendo da velocidade da conexão.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Iniciar o banco de dados
Execute uma instância de banco de dados local no 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
Dica
Se a porta 1433 já estiver em uso (por exemplo, por uma instalação local do SQL Server), altere --publish para uma porta de host diferente como 1434:1433 e atualize Server=localhost,1433 para Server=localhost,1434 as etapas posteriores.
Verifique se o mecanismo de banco de dados está pronto antes de executar o próximo comando.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Se isso retornar um erro, aguarde alguns segundos e tente novamente.
Criar e propagar o banco de dados
Crie um banco de dados e uma todos tabela e adicione dados de exemplo. Se você estiver usando o Docker, nenhum cliente SQL será necessário:docker exec executará os comandos diretamente dentro do contêiner. Se você estiver usando seu próprio banco de dados, execute o script SQL em sua ferramenta preferida.
Crie o banco de dados.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Crie a tabela e adicione dados de exemplo.
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);"
Dica
Usando seu próprio SQL Server? Execute este script diretamente:
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);
Configurar o construtor de API de Dados
Crie um arquivo de configuração do DAB e adicione uma entidade Todo .
Dica
Usando seu próprio banco de dados? Substitua a cadeia de conexão em dab init por uma que você mesmo criar:
-
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>;
Inicialize a configuração.
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;"Adicione a entidade Todo .
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
Seu dab-config.json arquivo agora deve ser semelhante ao exemplo a seguir:
{
"$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": [
"*"
]
}
]
}
}
}
Dica
Você pode ignorar os comandos dab init e dab add e criar o arquivo dab-config.json diretamente com o conteúdo mostrado aqui.
Iniciar a API
Use dab start para utilizar a ferramenta e criar endpoints de API para sua entidade.
dab start
A saída deve incluir o endereço da API em execução.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Dica
Neste exemplo, o aplicativo está sendo executado em localhost na porta 5000. Seu aplicativo em execução pode ter um endereço e uma porta diferentes.
Testar a API
Abra o navegador e navegue até o ponto de extremidade REST da entidade Todo .
http://localhost:5000/api/TodoA resposta JSON deve incluir todos os três itens da lista de tarefas.
{ "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 } ] }Navegue até a página de documentação do Swagger em
/swagger.http://localhost:5000/swagger
Criar um aplicativo Web
Exiba seu todos em um navegador usando um arquivo HTML sem formatação. Crie um arquivo nomeado todo.html usando o endpoint REST ou 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>
Abra todo.html no navegador. A página busca todos os itens todo e os renderiza como uma lista, com itens concluídos mostrados em strikethrough.
Importante
A configuração cors em seu sistema permite que este arquivo HTML aberto do seu sistema de arquivos local chame a API. Sem ele, o navegador bloqueia a solicitação.
Limpeza
Pare e remova o contêiner do Docker quando terminar.
docker stop dab-mssql && docker rm dab-mssql