Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam panduan cepat ini, Anda membuat titik akhir REST dan GraphQL untuk database SQL lokal menggunakan Data API Builder (DAB). Pilih mesin database Anda untuk memulai.
Prasyarat
- Docker(opsional jika Anda sudah memiliki database)
- .NET 8 (atau yang lebih baru)
Menginstal pembangun API Data CLI
Instal paket Microsoft.DataApiBuilder dari NuGet sebagai alat .NET.
Gunakan
dotnet tool installuntuk menginstal versi terbaru dariMicrosoft.DataApiBuilderdengan argumen--global.dotnet tool install --global Microsoft.DataApiBuilderNota
Jika paket sudah diinstal, perbarui paket sebagai gantinya menggunakan
dotnet tool update.dotnet tool update --global Microsoft.DataApiBuilderVerifikasi bahwa alat diinstal dengan
dotnet tool listmenggunakan argumen--global.dotnet tool list --global
Menarik gambar database
Petunjuk / Saran
Sudah memiliki database? Langsung ke Membuat dan mengisi database, jalankan skrip SQL untuk mesin Anda, kemudian lanjut ke Mengonfigurasi pembangun API Data dengan string koneksi Anda sendiri.
Unduh gambar Docker untuk mesin database Anda. Langkah ini dapat memakan waktu beberapa menit tergantung pada kecepatan koneksi Anda.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Mulai database
Jalankan instans database lokal di 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
Petunjuk / Saran
Jika port 1433 sudah digunakan (misalnya, oleh penginstalan SQL Server lokal), ubah --publish ke port host yang berbeda seperti 1434:1433 dan perbarui Server=localhost,1433 ke Server=localhost,1434 di langkah-langkah selanjutnya.
Verifikasi bahwa mesin database sudah siap sebelum menjalankan perintah berikutnya.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Jika ini mengembalikan kesalahan, tunggu beberapa detik dan coba lagi.
Membuat dan menyemai database
Buat todos database dan tabel, lalu tambahkan data sampel. Jika Anda menggunakan Docker, tidak diperlukan klien SQL—docker exec menjalankan perintah langsung di dalam kontainer. Jika Anda menggunakan database Anda sendiri, jalankan skrip SQL di alat pilihan Anda.
Buat database.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Buat tabel dan tambahkan data sampel.
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);"
Petunjuk / Saran
Menggunakan SQL Server Anda sendiri? Jalankan skrip ini secara langsung:
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);
Mengonfigurasi pembuat API Data
Buat file konfigurasi DAB dan tambahkan entitas Todo .
Petunjuk / Saran
Menggunakan database Anda sendiri? Ganti dab init dengan string koneksi Anda sendiri.
-
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>;
Menginisialisasi konfigurasi.
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;"Tambahkan entitas Todo .
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
File Anda dab-config.json sekarang akan terlihat mirip dengan contoh berikut:
{
"$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": [
"*"
]
}
]
}
}
}
Petunjuk / Saran
Anda dapat melewati perintah dab init dan dab add dan membuat file dab-config.json langsung dengan isi yang ditunjukkan di sini.
Mulai API
Gunakan dab start untuk menjalankan alat dan membuat titik akhir API untuk entitas Anda.
dab start
Output harus menyertakan alamat API yang sedang berjalan.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Petunjuk / Saran
Dalam contoh ini, aplikasi berjalan pada localhost port 5000. Aplikasi anda yang sedang berjalan mungkin memiliki alamat dan port yang berbeda.
Menguji API
Buka browser Anda dan navigasikan ke titik akhir REST untuk entitas Todo .
http://localhost:5000/api/TodoRespons JSON harus mencakup ketiga item tugas yang harus dilakukan.
{ "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 } ] }Navigasi ke halaman dokumentasi Swagger di
/swagger.http://localhost:5000/swagger
Membangun aplikasi web
Tampilkan daftar tugas Anda dalam peramban menggunakan file HTML biasa. Buat file bernama todo.html menggunakan titik akhir REST atau 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>
Buka todo.html di browser Anda. Halaman mengambil semua item todo dan merendernya sebagai daftar, dengan item yang telah diselesaikan ditampilkan dalam coretan.
Penting
Pengaturan cors dalam konfigurasi Anda memungkinkan file HTML ini—dibuka dari sistem file lokal Anda—untuk memanggil API. Tanpa itu, browser memblokir permintaan.
Pembersihan
Hentikan dan hapus kontainer Docker setelah Selesai.
docker stop dab-mssql && docker rm dab-mssql