Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, creará puntos de conexión REST y GraphQL para una base de datos SQL local mediante data API Builder (DAB). Elija el motor de base de datos para empezar.
Prerrequisitos
- Docker(opcional si ya tiene una base de datos)
- .NET 8 (o posterior)
Instalación de la CLI de Data API Builder
Instale el paquete Microsoft.DataApiBuilder desde NuGet como herramienta de .NET.
Utiliza
dotnet tool installpara instalar la versión más reciente deMicrosoft.DataApiBuildercon el argumento--global.dotnet tool install --global Microsoft.DataApiBuilderNota:
Si el paquete ya está instalado, actualice el paquete en su lugar mediante
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderCompruebe que la herramienta está instalada con el parámetro
dotnet tool listusando--global.dotnet tool list --global
Saca la imagen de base de datos
Sugerencia
¿Ya tiene una base de datos? Vaya a Crear y inicializar la base de datos, ejecute el script SQL para el motor y, a continuación, vaya a Configuración del generador de Data API con su propia cadena de conexión.
Descargue la imagen de Docker para el motor de base de datos. Este paso puede tardar unos minutos en función de la velocidad de conexión.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Iniciar la base de datos
Ejecute una instancia de base de datos local en 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
Sugerencia
Si el puerto 1433 ya está en uso (por ejemplo, mediante una instalación local de SQL Server), cambie --publish a otro puerto de host como 1434:1433 y actualice Server=localhost,1433 a Server=localhost,1434 en pasos posteriores.
Compruebe que el motor de base de datos está listo antes de ejecutar el comando siguiente.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Si devuelve un error, espere unos segundos e inténtelo de nuevo.
Creación y propagación de la base de datos
Cree una base de datos y una todos tabla y agregue datos de ejemplo. Si usa Docker, no se necesita ningún cliente SQL:docker exec ejecuta los comandos directamente dentro del contenedor. Si usa su propia base de datos, ejecute el script SQL en su herramienta preferida.
Cree la base de datos.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Cree la tabla y agregue datos de ejemplo.
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);"
Sugerencia
¿Usa su propio servidor SQL Server? Ejecute este script directamente:
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);
Configuración del generador de API de datos
Cree un archivo de configuración DAB y agregue una entidad Todo .
Sugerencia
¿Usa su propia base de datos? Reemplace la cadena de conexión de dab init por la suya propia:
-
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>;
Inicialice la configuración.
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;"Agregue la entidad Todo .
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
El dab-config.json archivo debería tener ahora un aspecto similar al del ejemplo siguiente:
{
"$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": [
"*"
]
}
]
}
}
}
Sugerencia
Puede omitir los dab init comandos y dab add y crear el dab-config.json archivo directamente con el contenido que se muestra aquí.
Inicio de la API
Use dab start para ejecutar la herramienta y crear puntos de conexión de API para la entidad.
dab start
La salida debe incluir la dirección de la API en ejecución.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Sugerencia
En este ejemplo, la aplicación se ejecuta en localhost el puerto 5000. La aplicación en ejecución puede tener una dirección y un puerto diferentes.
Prueba de la API
Abra su navegador y vaya al punto de conexión REST de la entidad Todo.
http://localhost:5000/api/TodoLa respuesta JSON debe incluir las tres tareas pendientes.
{ "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 } ] }Vaya a la página de documentación de Swagger en
/swagger.http://localhost:5000/swagger
Compilación de una aplicación web
Muestra tus tareas pendientes en un navegador mediante un archivo HTML simple. Cree un archivo denominado todo.html mediante el punto de conexión REST o 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 en el explorador. La página captura todos los elementos de tareas pendientes y los representa como una lista, con los elementos completados que se muestran en tachado.
Importante
La cors configuración de la configuración permite que este archivo HTML , abierto desde el sistema de archivos local, llame a la API. Sin él, el explorador bloquea la solicitud.
Limpieza
Detenga y quite el contenedor de Docker cuando haya terminado.
docker stop dab-mssql && docker rm dab-mssql