Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu hızlı başlangıçta, Veri API oluşturucusu (DAB) kullanarak yerel sql veritabanı için REST ve GraphQL uç noktaları oluşturacaksınız. Başlamak için veritabanı altyapınızı seçin.
Önkoşullar
- Docker(zaten bir veritabanınız varsa isteğe bağlı)
- .NET 8 (veya daha yenisi)
Veri API'sini oluşturucu CLI'yi yükleme
NuGet'ten Microsoft.DataApiBuilder paketini .NET aracı olarak yükleyin.
En son sürümünü
dotnet tool installbağımsız değişkeniyle yüklemek içinMicrosoft.DataApiBuilderöğesini--globalkullanın.dotnet tool install --global Microsoft.DataApiBuilderUyarı
Paket zaten yüklüyse, yerine kullanarak
dotnet tool updatepaketi güncelleştirin.dotnet tool update --global Microsoft.DataApiBuilderdotnet tool listaracının,--globalbağımsız değişkeniyle yüklü olduğunu doğrulayın.dotnet tool list --global
Veritabanı görüntüsünü çekme
Tavsiye
Zaten bir veritabanınız mı var? Veritabanını oluşturma ve başlangıç verilerini ekleme'ye atlayın, altyapınız için SQL betiğini çalıştırın, ardından kendi bağlantı dizeğinizle Data API yapılandırıcısını ayarlamak için ilerleyin.
Veritabanı altyapınız için Docker görüntüsünü indirin. Bu adım, bağlantı hızınıza bağlı olarak birkaç dakika sürebilir.
docker pull mcr.microsoft.com/mssql/server:2025-latest
Veritabanını başlatma
Docker'da yerel bir veritabanı örneği çalıştırın.
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
Tavsiye
Bağlantı noktası 1433 zaten kullanılıyorsa (örneğin, yerel bir SQL Server yüklemesi tarafından), --publish'i 1434:1433 gibi farklı bir ana bilgisayar bağlantı noktasına değiştirin ve sonraki adımlarda Server=localhost,1433'ü Server=localhost,1434 olarak güncelleyin.
Sonraki komutu çalıştırmadan önce veritabanı altyapısının hazır olduğunu doğrulayın.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "SELECT 1"
Bu bir hata döndürürse, birkaç saniye bekleyip yeniden deneyin.
Veritabanını oluşturma ve veri ekleme
Veritabanı todos ve tablo oluşturup örnek veriler ekleyin. Docker kullanıyorsanız sql istemcisi gerekmez;docker exec komutları doğrudan kapsayıcının içinde çalıştırır. Kendi veritabanınızı kullanıyorsanız sql betiğini tercih ettiğiniz araçta çalıştırın.
Veritabanını oluşturun.
docker exec dab-mssql /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P "P@ssw0rd1" -C -Q "CREATE DATABASE todos;"Tabloyu oluşturun ve örnek veriler ekleyin.
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);"
Tavsiye
Kendi SQL Server'ınızı mı kullanıyorsunuz? Bu betiği doğrudan çalıştırın:
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);
Veri API'si oluşturucusunu yapılandırma
BIR DAB yapılandırma dosyası oluşturun ve bir Todo varlığı ekleyin.
Tavsiye
Kendi veritabanınızı mı kullanıyorsunuz? içindeki dab init bağlantı dizesini kendi bağlantı dizenizle değiştirin:
-
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>;
Yapılandırmayı başlatı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;"Todo varlığını ekleyin.
dab add Todo --source "dbo.todos" --permissions "anonymous:*"
Dosyanız dab-config.json artık aşağıdaki örneğe benzer görünmelidir:
{
"$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": [
"*"
]
}
]
}
}
}
Tavsiye
dab init ve dab add komutlarını atlayabilir ve dab-config.json dosyasını burada gösterilen içerikle doğrudan oluşturabilirsiniz.
API'yi başlatma
Aracı çalıştırmak ve varlığınız için API uç noktaları oluşturmak için kullanın dab start .
dab start
Çıktı, çalışan API'nin adresini içermelidir.
Successfully completed runtime initialization.
info: Microsoft.Hosting.Lifetime[14]
Now listening on: <http://localhost:5000>
Tavsiye
Bu örnekte, uygulama localhost numaralı bağlantı noktasında çalışıyor. Çalışan uygulamanızın farklı bir adresi ve bağlantı noktası olabilir.
API’yi test etme
Tarayıcınızı açın ve Todo varlığının REST uç noktasına gidin.
http://localhost:5000/api/TodoJSON yanıtı üç yapılacaklar öğesini de içermelidir.
{ "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 } ] }konumundaki
/swaggerSwagger belgeleri sayfasına gidin.http://localhost:5000/swagger
Web uygulaması oluşturma
Todos'unuzu düz bir HTML dosyası kullanarak tarayıcıda görüntüleyin. REST veya GraphQL uç noktasını kullanarak adlı todo.html bir dosya oluşturun.
<!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>
Tarayıcınızda açın todo.html . Sayfa tüm yapılacaklar öğelerini bir liste olarak işler ve tamamlanmış öğeleri üstü çizili olarak gösterir.
Önemli
cors Yapılandırmanızdaki ayar, yerel dosya sisteminizden açılan bu HTML dosyasının API'yi çağırmasına izin verir. Bu olmadan, tarayıcı isteği engeller.
Temizleme
İşiniz bittiğinde Docker kapsayıcısını durdurun ve kaldırın.
docker stop dab-mssql && docker rm dab-mssql