Aracılığıyla paylaş


Veri API oluşturucusu sürüm 2.0 (Mart 2026) ile sunulan yenilikler

Uyarı

Sürüm 2.0 genel önizleme aşamasındadır. Bazı özellikler henüz üretim kullanımı için önerilmeyebilir. Özellik kullanılabilirliği ve kararlılığı hakkında ayrıntılı bilgi için belgelere bakın.

Data API builder 2.0 Model Bağlam Protokolü (MCP) ve yapay zeka tümleştirmesi, daha basit kimlik doğrulama varsayılanları ve daha iyi yapılandırma otomasyonuna odaklanır. Bu sürüm ayrıca daha güçlü gözlemlenebilirlik ve daha esnek REST ve OpenAPI davranışı getirir.

Giriş: Otomatik yapılandırma

Otomatik yapılandırma, yapılandırmanızdaki veritabanı nesnelerini otomatik olarak bulup kullanıma sunan desenler tanımlamanıza olanak tanıyan güçlü bir özelliktir. Bu yaklaşım, özellikle nesneler ve izinler tahmin edilebilir olduğunda yapılandırma dosyasını önemli ölçüde küçültebilir. Ayrıca, autoentities DAB her başlatıldığında desenleri yeniden değerlendirin ve uygulayın; böylece desenle eşleşen yeni tablolar el ile yapılandırma değişiklikleri olmadan otomatik olarak varlık olarak eklenir.

Uyarı

Sürüm 2.0'da, dab auto-config yalnızca bir veya daha fazla Microsoft SQL veritabanındaki tabloları destekler. Başka bir veri kaynağına veya veritabanı türüne ihtiyacınız varsa varlıklarınızı el ile tanımlamaya devam edebilirsiniz.

Why?

ile auto-config, tek bir varlık bloğunu el ile yazmadan veritabanı şemasının tamamını DAB API'sine bağlayabilirsiniz. Desenlerinizi bir kez tanımlayın ve DAB gerisini yapar.

DAB'de şema temelli API'ye geçiş olmadığını belirtmek gerekir autoentities . Şema temelli API'lerle ilgili sorun, şemayı sızdırmaları ve iyi tasarlanmış bir depo yerine API'ye uyum sağlamak için veritabanına yük getirmeleridir. Autoentities veritabanı şemanızla eşleşen desenler tanımlamanıza ve bu desenlerden varlıkların bir alt kümesini otomatik olarak oluşturmanıza izin vererek bu sorunu çözün. Buna ek olarak, veritabanınız geliştikçe el ile yapılandırma güncelleştirmeleri olmadan benzersiz desenler ve izinlerle birden çok autoentities tanımlayabilir, MCP'ye katılabilir ve daha fazlasını yapabilirsiniz.

Komut satırı

dab auto-config my-def \
	--patterns.include "dbo.%" \
	--patterns.exclude "dbo.internal%" \
	--patterns.name "{schema}_{table}" \
	--permissions "anonymous:read"

dab auto-config my-def \
	--template.rest.enabled true \
	--template.graphql.enabled true \
	--template.cache.enabled true \
	--template.cache.ttl-seconds 30 \
	--template.cache.level L1L2

Sonuçta elde edilen yapılandırma

{
	"autoentities": {
		"my-def": {
			"patterns": {
				"include": [ "dbo.%" ],
				"exclude": [ "dbo.internal%" ],
				"name": "{schema}_{table}"
			},
			"template": {
				"rest": { "enabled": true },
				"graphql": { "enabled": true },
				"cache": {
					"enabled": true,
					"ttl-seconds": 30,
					"level": "l1l2"
				}
			},
			"permissions": [
				{
					"role": "anonymous",
					"actions": [ "read" ]
				}
			]
		}
	}
}

Yapılandırmanızı test edin

dab auto-config-simulate değişiklikleri işlemeden önce desenlerinizle autoentities eşleşen veritabanı nesnelerinin önizlemesini görüntüler. Veritabanına bağlanır, her deseni çözümler ve eşleşen nesneleri yazdırır. Artık ekleme ve dışlama desenlerinizin canlı yapılandırmaya dokunmadan önce tam olarak beklediğiniz varlıkları ürettiğini doğrulayabilirsiniz.

dab auto-config-simulate
Sonuç çıktı
AutoEntities Simulation Results

Filter: my-def
Matches: 3
	dbo_Products  →  dbo.Products
	dbo_Inventory →  dbo.Inventory
	dbo_Pricing   →  dbo.Pricing

Belgeleri okuyun

Giriş: Birinin Adına (OBO) kullanıcı yetkilendirme

DAB 2.0, Microsoft Entra Id kullanan Microsoft SQL veritabanları için bazen doğrudan kimlik doğrulaması olarak da adlandırılanBehalf-Of (OBO) kimlik doğrulaması ekler. Etkinleştirildiğinde, DAB gelen kullanıcı belirtecini aşağı akış SQL belirteci ile değiştirir, böylece veritabanı gerçek çağıran kullanıcı olarak kimlik doğrulaması yapar.

Why?

OBO kimlik doğrulaması ile, SQL veritabanının gerçek kullanıcı kimliğini gördüğü ve zorunlu kıldığı API'ler oluşturabilirsiniz. Bu, bazı satır düzeyi güvenlik senaryoları ve uyumluluk denetimi için yararlı olabilir. Bu davranış özellikle kimin harekete geçtiği belirsiz hale gelebileceği MCP senaryolarında değerlidir; OBO, saydam kullanıcı tanımlamasına izin verir.

OBO önkoşulları

  1. Veritabanı için belirteç istemek için uygun API izinlerine sahip bir Entra Id uygulama kaydı
  2. DAB tarafından kabul edilen JWT'leri veren bir yukarı akış kimlik sağlayıcısı (Entra Kimliği veya yapılandırdığınız özel bir sağlayıcı)
  3. Microsoft Entra Id belirteçlerini kabul etmek üzere yapılandırılmış MSSQL veritabanı

Yapılandırma gereksinimleri

  • Gerektirir data-source.database-type: "mssql"
  • Gerektirir data-source.user-delegated-auth.database-audience
  • OBO yapılandırıldığında runtime.cache devre dışı bırakılmalıdır.
  • OBO uygulama kaydının istemci kimliğini içeren bir ortam değişkeni DAB_OBO_CLIENT_ID gerektirir.
  • OBO uygulama kaydının kiracı kimliğiyle env var DAB_OBO_TENANT_ID gerektirir
  • OBO uygulama kaydının istemci sırrını içeren çevresel değişken DAB_OBO_CLIENT_SECRET gerektirir.

Komut satırı

set DAB_OBO_CLIENT_ID=1234-abcd-5678-efgh
set DAB_OBO_TENANT_ID=abcd-1234-efgh-567
set DAB_OBO_CLIENT_SECRET=supersecretvalue

dab configure --data-source.database-type mssql
dab configure --runtime.cache.enabled false

dab configure --data-source.user-delegated-auth.enabled true
dab configure --data-source.user-delegated-auth.provider EntraId
dab configure --data-source.user-delegated-auth.database-audience "https://database.windows.net"

Sonuçta elde edilen yapılandırma

{
	"data-source": {
		"database-type": "mssql",
		"connection-string": "@env('SQL_CONNECTION_STRING')",
		"user-delegated-auth": {
			"enabled": true,
			"provider": "EntraId",
			"database-audience": "https://database.windows.net"
		}
	},
	"runtime": {
		"cache": {
			"enabled": false
		}
	}
}

Uyarı

OBO etkinleştirildiğinde, DAB kullanıcı başına ayrı SQL bağlantı havuzları tutar, böylece bir kullanıcının erişim belirteci hiçbir zaman başka bir kullanıcının isteği için yeniden kullanılmaz. Artık kimlerin bağlı olduğuna bağlı olarak satır düzeyi güvenlik uygulandığında, bağlantıların kullanıcılar arasında yeniden kullanımının sessizce yanlış erişim sağlamadığından emin olabilirsiniz.

Belgeleri okuyun

Giriş: Özel MCP araçları

custom-tool: true Bir saklı yordam varlığında ayarlandığında, DAB bu yordamı standart tools/list ve tools/call yöntemler aracılığıyla kullanıma sunulan adlandırılmış bir MCP aracı olarak dinamik olarak kaydeder.

Why?

Artık yapay zeka ajanlarına, herhangi bir yapıştırma kodu yazmadan mevcut saklı yordamlarınız tarafından desteklenen özel amaçlı araçlar verebilirsiniz. Araç, MCP araç listesinde görünür ve prosedürle aynı parametreleri kabul eder.

Komut satırı

dab add GetBookById \
  --source dbo.get_book_by_id \
  --source.type "stored-procedure" \
  --permissions "anonymous:execute" \
  --mcp.custom-tool true

Sonuçta elde edilen yapılandırma

{
	"entities": {
		"GetBookById": {
			"source": {
				"type": "stored-procedure",
				"object": "dbo.get_book_by_id"
			},
			"mcp": {
				"custom-tool": true
			},
			"permissions": [
				{
					"role": "anonymous",
					"actions": [ "execute" ]
				}
			]
		}
	}
}

Belgeleri okuyun

Tanıtılıyor: yeni Unauthenticated sağlayıcı

DAB 2.0, yeni bir kimlik doğrulama sağlayıcısı olarak tanıtılarak Unauthenticated yeni yapılandırmalar için varsayılan olarak kullanılır. Bu sağlayıcı etkin olduğunda, tüm istekler anonymous olarak çalışır. DAB herhangi bir JSON Web Belirtecini (JWT) incelemez veya doğrulamaz. DAB'nin önündeki başka bir hizmet çağıranın kimliğini doğrulasa bile, DAB izinleri yalnızca olarak anonymousdeğerlendirir.

Why?

Artık DAB'nin anonymousyalnızca kalmasını istediğinizde başlangıç ​​için bir JWT sağlayıcısı yapılandırmanız gerekmez. Çalıştırma dab init , ek kimlik doğrulama seçenekleri olmadan çalışan bir yapılandırma oluşturur.

Komut satırı

dab init --database-type mssql --connection-string "Server=localhost;Database=mydb;"

Sonuçta elde edilen yapılandırma

{
	"runtime": {
		"host": {
			"authentication": {
				"provider": "Unauthenticated"
			}
		}
	}
}

Önemli

Etkin olduğunda Unauthenticated, authenticated ve varlık izinlerinde tanımlanan özel roller hiçbir zaman etkinleştirilmez. Yapılandırmanız bu rolleri içeriyorsa, DAB başlangıçta bir uyarı gösterir.

Belgeleri okuyun

Giriş: Rol devralma

DAB 2.0 rol devralma ekler, böylece her rolde aynı izin bloğunu yinelemeniz gerekmez. Devralma zinciri:

	named-role → authenticated → anonymous

Bir varlık için authenticated açıkça yapılandırılmamışsa, anonymous öğesinden devralır. Adlandırılmış bir rol yapılandırılmamışsa, authenticated öğesinden devralır veya anonymous de yoksa authenticated öğesinden devralır.

Why?

Rol devralma ile izinleri bir kez anonymous tanımlayabilirsiniz ve daha geniş olan her rol otomatik olarak aynı erişimi alır; yineleme gerekmez.

{
	"entities": {
		"Book": {
			"source": "dbo.books",
			"permissions": [
				{ "role": "anonymous", "actions": [ "read" ] }
			]
		}
	}
}

Bu yapılandırmayla, anonymous, authenticated ve herhangi bir yapılandırılmamış adlandırılmış rol Book'yi okuyabilir.

CLI ile etkili izinleri gösterme

Rol devralma işleminin bir sonucu olarak, --show-effective-permissions üzerindeki dab configure yeni bir seçenek, her varlık için çözümlenmiş izinleri görüntüler. Devralma kuralları uygulandıktan sonra bir rolün neler yapabileceğini bilmiyorsanız, yapılandırmayı el ile yönetmek yerine yanıtı almak için bu komutu çalıştırın.

Komut satırı

dab configure --show-effective-permissions
dab configure --show-effective-permissions --config my-config.json

Sonuç çıktı

Entity: Book
	Role: anonymous        | Actions: Read
	Role: authenticated    | Actions: Read (inherited from: anonymous)
	Unconfigured roles inherit from: anonymous

Entity: Order
	Role: admin            | Actions: Create, Read, Update, Delete
	Role: anonymous        | Actions: Read
	Role: authenticated    | Actions: Read (inherited from: anonymous)
	Unconfigured roles inherit from: authenticated

Belgeleri okuyun

Giriş: gelişmiş REST yolları

Varlık REST yolları artık eğik çizgi içererek alt dizin stili URL segmentlerine izin verebilir.

Why?

Artık paylaşılan yol ön eki altında ilgili varlıkları gruplandırarak REST API'nizin herhangi bir yönlendirici yapılandırması olmadan daha doğal bir şekilde düzenlenmiş hissetmesini sağlayabilirsiniz. Bu yaklaşım, daha önce benzersiz varlık adları gerektiren /api/shopping-cart/item ve /api/invoice/items gibi aynı ada sahip uç noktaların, kiracı kimliği segmenti ile segmentlere ayrılabileceği çok kiracılı senaryolar için faydalı olabilir.

Komut satırı

dab add ShoppingCartItem \
  --source dbo.ShoppingCartItem \
  --rest.path "shopping-cart/item"

dab add InvoiceItem \
  --source dbo.InvoiceItem \
  --rest.path "invoice/item"

Sonuçta elde edilen yapılandırma

{
	"entities": {
		"ShoppingCartItem": {
			"source": "dbo.ShoppingCartItem",
			"rest": { "path": "shopping-cart/item" }
		},
		"InvoiceItem": {
			"source": "dbo.InvoiceItem",
			"rest": { "path": "invoice/item" }
		}
	}
}

Ortaya çıkan yollar

https://{server-name}/api/shopping-cart/item
https://{server-name}/api/invoice/item

Belgeleri okuyun

Giriş: izin odaklı OpenAPI

OpenAPI belgesi artık yalnızca izinlere göre erişilebilen HTTP yöntemlerini ve alanlarını gösterir. Role özgü yeni bir yol /openapi/{role} , belirli bir rolün tam olarak neler yapabileceğini görmenizi sağlar.

Why?

İzin kullanan OpenAPI ile belgeniz güvenilir bir sözleşmedir. İstemciler ve API tüketicileri, tam iç yüzeyi değil, yalnızca çağırmalarına izin verilenleri görür.

Kullanılabilir yollar

/openapi
/openapi/anonymous
/openapi/authenticated
/openapi/{custom-role}

Önemli

/openapi/{role} yalnızca üretimde rol numaralandırmasını önlemek için Geliştirme modunda kullanılabilir.

Belgeleri okuyun

dab init içindeki varsayılan OpenTelemetry ayarları

dab init tarafından oluşturulan yeni yapılandırmalar, standart OTEL (OpenTelemetry) ortam değişkenlerine önceden yapılandırılmış varsayılan bir OpenTelemetry bölümü içerir.

Why?

Artık bir kapsayıcıya veya Aspire uygulamasına DAB dağıttığınızda, gözlemlenebilirlik altyapısı zaten kurulmuştur. Yalnızca ortam değişkenlerini ayarlarsınız; el ile yapılandırma düzenlemesi gerekmez.

{
	"telemetry": {
		"open-telemetry": {
			"enabled": true,
			"endpoint": "@env('OTEL_EXPORTER_OTLP_ENDPOINT')",
			"headers": "@env('OTEL_EXPORTER_OTLP_HEADERS')",
			"service-name": "@env('OTEL_SERVICE_NAME')"
		}
	}
}

Ortam değişkenleri ayarlanmamışsa, DAB normal şekilde başlar ve OpenTelemetry Protocol (OTLP) dışarı aktarma kurulumunu atlar. Çözümlenmemiş @env(...) değerler başlangıçta tolere edilir.

Belgeleri okuyun

Giriş: HTTP yanıt sıkıştırması

DAB 2.0, REST ve GraphQL yanıtları için HTTP yanıt sıkıştırması ekler. Artık tek bir yapılandırma ayarıyla kablo üzerindeki yük boyutlarını küçültebilirsiniz. Bu ayar özellikle büyük sonuç kümeleri veya düşük bant genişliğine sahip ortamlar için kullanışlıdır.

Desteklenen düzeyler: optimal, fastest, none.

Komut satırı

dab configure --runtime.compression.level "optimal"

Sonuçta elde edilen yapılandırma

{
	"runtime": {
		"compression": {
			"level": "optimal"
		}
	}
}

Belgeleri okuyun

Anahtarsız PUT ve PATCH otomatik oluşturulan anahtarlar için

DAB 2.0, veritabanı tüm atlanmış anahtar sütunlarını otomatik olarak oluştururken URL'de anahtar olmadan PUT ve PATCH isteklerine izin verir. Anahtarsız upsert'lerle, alışkın olduğunuz upsert semantiğini kullanarak sunucu tarafından oluşturulan anahtarla yeni bir satır ekleyebilirsiniz; anahtarı önceden oluşturmanıza veya sağlamanıza gerek kalmaz.

Belgeleri okuyun

MCP yürütmesi için OpenTelemetry izleme

MCP aracı yürütmesi artık REST ve GraphQL trafiğiyle birlikte OpenTelemetry izlemelerine dahil edilir. Artık aynı panoları, aynı izleme kimliklerini ve aynı araçları kullanarak, API isteklerini izlediğiniz gibi yapay zeka aracısı araç çağrılarını izleyebilir ve ilişkilendirebilirsiniz. OpenTelemetry yapılandırıldığında bu otomatik olarak çalışır. dab init Artık varsayılan bir telemetri bölümü oluşturduğundan, yeni uygulamaların üç uç nokta türü için de kullanıma hazır gözlemlenebilirlik özelliği vardır.

Belgeleri okuyun