Bagikan melalui


Mulai cepat: Menggunakan penyusun API Data dengan SQL

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

Menginstal pembangun API Data CLI

Instal paket Microsoft.DataApiBuilder dari NuGet sebagai alat .NET.

  1. Gunakan dotnet tool install untuk menginstal versi terbaru dari Microsoft.DataApiBuilder dengan argumen --global.

    dotnet tool install --global Microsoft.DataApiBuilder
    

    Nota

    Jika paket sudah diinstal, perbarui paket sebagai gantinya menggunakan dotnet tool update.

    dotnet tool update --global Microsoft.DataApiBuilder
    
  2. Verifikasi bahwa alat diinstal dengan dotnet tool list menggunakan 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.

  1. Buat database.

    docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"
    
  2. 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>;
  1. 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;"
    
  2. 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

  1. Buka browser Anda dan navigasikan ke titik akhir REST untuk entitas Todo .

    http://localhost:5000/api/Todo
    
  2. Respons 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 }
      ]
    }
    
  3. 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

Langkah selanjutnya