Sürüm 0.11 ve önceki sürümlerdeki yenilikler
Data API builder sürüm 0.11 ve önceki sürümlerdeki tüm güncelleştirmeler ve geliştirmeler hakkında sürüm notları ve bilgiler.
Sürüm 0.11'deki yenilikler
Data API builder sürüm 0.10'daki güncelleştirmeler ve geliştirmeler hakkında sürüm notları ve bilgiler.
SQL Veri Ambarı için GraphQL desteği
SQL Veri Ambarı artık GraphQL uç noktalarını destekliyor.
NoSQL için gelişmiş Azure Cosmos DB filtrelemesi
NoSQL için Azure Cosmos DB artık işleciyle iç içe filtreler, kimlik değişkenleri ve dize dizisi aramaları desteğine contains
sahiptir.
Komut satırı arabirimiyle uygulama veri toplamayı etkinleştirme
Artık Application Insights ile veri toplamayı etkinleştirmek için DAB komut satırı arabirimini (CLI) kullanabilirsiniz.
Sürüm 0.10'daki yenilikler
Data API builder sürüm 0.10'daki güncelleştirmeler ve geliştirmeler hakkında sürüm notları ve bilgiler.
Genel Kullanılabilirliğe yaklaştıkça odağımız kararlılığımızı artırıyor. Kod kalitesi ve altyapı kararlılığındaki tüm çabalar bu makalede ayrıntılı olarak açıklanmasa da, bu listede önemli güncelleştirmeler vurgulanır.
GitHub sürüm notları
Tüm değişikliklerin ve iyileştirmelerin kapsamlı bir listesi için bu sürüm sayfalarını gözden geçirin:
- 2024-02-06 - Sürüm 0.10.23
- 2024-01-31 - Sürüm 0.10.21
- 2023-12-07 - Sürüm 0.10.11
Bellek içi önbellek
Sürüm 0.10, REST ve GraphQL uç noktaları için bellek içi önbelleğe alma özelliğini kullanıma sağlar. İç önbelleğe alma için tasarlanan bu özellik, gelecekte dağıtılan önbelleğe alma için temelleri oluşturur. Bellek içi önbelleğe alma, yinelenen sorgulardan veritabanı yükünü azaltır.
Önbelleğe Alma Senaryoları
- Veritabanı yükünü azaltma: Önbellek pahalı sorguların sonuçlarını depolayarak yinelenen veritabanı çağrılarına olan ihtiyacı ortadan kaldırır.
- API ölçeklenebilirliğini geliştirme: Önbelleğe alma, veritabanı isteklerini artırmadan daha sık YAPıLAN API çağrılarını destekler ve API'nizin özelliklerini önemli ölçüde ölçeklendirir.
Yapılandırma Değişiklikleri
Önbelleğe alma ayarları bölümünde ve her varlık için kullanılabilir runtime
ve ayrıntılı denetim sunar.
Çalışma zamanı ayarları:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Önbelleğe alma varsayılan olarak devre dışıdır.
- Varsayılan yaşam süresi (TTL) 5 saniyedir.
Varlık ayarları:
{
"Book": {
"source": {
"object": "books",
"type": "table"
},
"graphql": {
"enabled": true,
"type": {
"singular": "book",
"plural": "books"
}
},
"rest": {
"enabled": true
},
"permissions": [
{
"role": "anonymous",
"actions": [
{
"action": "*"
}
]
}
],
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
CLI'da Yapılandırma Doğrulaması
CLI artık yapılandırma dosyalarının hatalar veya tutarsızlıklar açısından denetlenerek geliştirme iş akışının geliştirilmesini destekliyor dab validate
.
Doğrulama Adımları
- Şema doğrulaması
- Yapılandırma özellikleri doğrulaması
- Yapılandırma izni doğrulaması
- Veritabanı bağlantı doğrulaması
- Varlıklar Meta Veri doğrulaması
Önizleme Özellikleri
Sürüm 0.9'daki yenilikler
Data API Builder 0.9'daki en ilgili değişiklikler ve iyileştirmeler hakkında ayrıntılı bilgi aşağıda verilmiştir.
GitHub sürüm notları
Tüm değişikliklerin ve iyileştirmelerin kapsamlı bir listesi için bu sürüm sayfalarını gözden geçirin:
DAB'yi kendi kendine barındırırken Application Insights'ı etkinleştirme
Günlükler artık daha iyi bir izleme ve hata ayıklama deneyimi için, özellikle De Data API builder Azure'da dağıtıldığında Application Insights'a aktarılabilir. Application Insights ile tümleştirmeyi etkinleştirmek ve yapılandırmak için yapılandırma dosyasına yeni telemetry
bir bölüm eklenebilir:
"telemetry": {
"application-insights": {
"enabled": true, // To enable/disable application insights telemetry
"connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
}
}
Application Insights belgelerini kullanma sayfasındaki tüm ayrıntıları okuyun.
REST isteği gövdesindeki fazlalık alanları yoksayma desteği
Yeni request-body-strict
seçenekle, ARTıK REST yükünde ek alanın olması hata mı (varsayılan davranış, geriye dönük uyumlu) oluşturur veya ek alanların sessizce yoksayılıp yoksayıldığına karar verebilirim.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
seçeneği false
olarak ayarlanarakrequest-body-strict
, ilgili veritabanı nesnesine eşlemesi olmayan alanlar hata oluşturmadan yoksayılır.
Bağlantılar için mssql
Uygulama Adı ekleme
Veri API oluşturucusu artık bağlantı dizesine yalnızca veritabanı türleri için mssql
özellik olarak Application Name
değeri dab-<version>
ekler ve bu da veritabanı sunucusundaki bağlantıların tanımlanmasını kolaylaştırır. Bağlantı dizesinde zaten varsa Application Name
, Buna Data API builder sürümü eklenir.
'de veri türünü destekleme time
mssql
time
veri türü artık veritabanlarında mssql
desteklenmektedir.
Tetkiklerle birlikte tablodaki mutasyonlar mssql
Mutasyonlar artık veritabanları için mssql
tetikleyiciler içeren tablolarda tam olarak desteklenmektedir.
Tablodaki salt okunur alanların kullanıcıya göre güncelleştirilmesini/eklenmesini engelleme
Veritabanının salt okunur alanlarını otomatik olarak algılayın ve bu alanların kullanıcıya göre güncelleştirilmesini/eklenmesini engelleyin.
Sürüm 0.8'deki yenilikler
Data API builder 0.8'deki en ilgili değişiklikler ve iyileştirmeler hakkında ayrıntılı bilgiler aşağıda verilmiştir.
GitHub sürüm notları
Tüm değişikliklerin ve iyileştirmelerin kapsamlı bir listesi için bu sürüm sayfalarını gözden geçirin:
- 0.8.52: GitHub yayın sayfası
- 0.8.51: GitHub yayın sayfası
- 0.8.50: GitHub yayın sayfası
- 0.8.49: GitHub yayın sayfası
.env dosyası için destek eklendi
Ortam değişkenleri gizli dizileri düz metin pozlamasından korur ve farklı ayarlarda değer değişimine izin verir. Ancak, bu değişkenlerin kullanıcı veya bilgisayar kapsamında ayarlanması gerekir; bu durum, değişken adları çoğaltılırsa çapraz proje değişkeninin "kanamasına" neden olabilir. Ortam dosyaları daha iyi bir alternatiftir. Daha fazla bilgi için bkz. Veri API'si oluşturucusunda ortam dosyaları - blog.
Sürüm 0.7.6'daki yenilikler
Bu makalede 0.7.6 sürümünün sürüm notları açıklanmaktadır.
GitHub çekme istekleri
- Cosmos için filtre erişimi reddetme sorunu giderildi
- Graphql "true", include "*" olduğunda Azure Cosmos DB alan kimlik doğrulaması için hata düzeltmesi
OpenAPI v3-0-1 açıklama belgesi oluşturma için İlk Destek
Veri API'si oluşturucusu, hizmet hakkında yararlı bilgiler içeren açıklama belgeleri oluşturmak ve kullanıma açmak için OpenAPI standardını destekler. Bu belgeler çalışma zamanı yapılandırma dosyasından ve her veritabanı nesnesinin meta verilerinden oluşturulur. Bu nesneler, aynı yapılandırma dosyasında tanımlanan REST özellikli bir varlıkla ilişkilendirilir. Daha sonra bir kullanıcı arabirimi aracılığıyla kullanıma sunulur ve serileştirilmiş dosya olarak kullanılabilir hale getirilir.
OpenAPI ve Veri API'si oluşturucusunun özellikleri hakkında daha fazla bilgi için bkz. OpenAPI.
Yapılandırma dosyalarının birleştirilmesine izin verme
İki yapılandırma dosyasını otomatik olarak birleştirme özelliğini ekler.
Ortama özgü ayarların yönetimini basitleştirmek için temel ve ortama özgü yapılandırma dosyalarının birden çok çiftini korumak mümkündür. Örneğin, Geliştirme ve Üretim için ayrı yapılandırmalar tutmak mümkündür. Bu adım, farklı ortamlar arasındaki tüm ortak ayarları içeren bir temel yapılandırma dosyası içerir. Ardından değişkenini DAB_ENVIRONMENT
ayarlayarak, Veri API oluşturucusu tarafından kullanılmak üzere birleştirilecek yapılandırma dosyalarını denetlemek mümkündür.
Daha fazla bilgi için bkz. CLI başvurusu.
Bir işlemde GraphQL ve REST Mutasyonlarını Yürütme
Veri API oluşturucusu, belirli türde GraphQL ve REST isteklerini yürütmek için veritabanı işlemleri oluşturur.
Gerçekleştirmek için birden fazla veritabanı sorgusu yapmayı içeren birçok istek vardır. Örneğin, bir güncelleştirmenin sonuçlarını döndürmek için önce güncelleştirme için bir sorgu yapılmalıdır, ardından yeni değerlerin döndürülmeden önce okunması gerekir. Bir isteğin yürütülmesi için birden çok veritabanı sorgusu gerektiğinde, Veri API oluşturucusu artık bu veritabanı sorgularını tek bir işlem içinde yürütür.
Bu özellik hakkında daha fazla bilgiyi REST bağlamında, REST belgelerinde ve GraphQL belgelerindeki GraphQL'de bulabilirsiniz.
Sürüm 0.6.14'teki yenilikler
Bu makalede, Azure Veritabanları için Veri API oluşturucusu için Mart 2023 sürümüne yönelik düzeltme eki açıklanmaktadır.
Hata Düzeltmeleri
- Cosmos için sorgu filtresi erişimi reddedildi sorununu giderin.
- Cosmos DB şu anda alan düzeyinde yetkilendirmeyi desteklememektedir. Kullanıcıların çalışma zamanı yapılandırmasındaki
field
izinleri yanlışlıkla geçirmesi durumundan kaçınmak için bir doğrulama denetimi ekledik.
Sürüm 0.6.13'teki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
GraphQL şemasını dışarı aktarmak için yeni CLI komutu
GraphQL şemasını dışarı aktarmak için yeni bir seçenek eklenir. Bu işlem DAB sunucusunu başlatır ve sağlanan konuma yazmadan önce şemayı almak için sorgular.
dab export --graphql -c dab-config.development.json -o ./schemas
Bu komut, ./schemas dizininde GraphQL şema dosyasını oluşturur. Yapılandırma dosyasının yolu isteğe bağlı bir parametredir ve 'dab-config' dışında varsayılan olarak 'dab-config.json' olarak ayarlanır.<>DAB_ENVIRONMENT.json' vardır ve burada DAB_ENVIRONMENT bir ortam değişkenidir.
MsSql için eylem oluşturma için veritabanı ilkesi desteği
Veritabanı ilkeleri artık MsSql için tüm CRUD (Oluşturma, Okuma, Güncelleştirme, Silme) işlemleri için desteklenmektedir. Örnek:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
Varlık için Revenue
önceki yapılandırma, rolle Authenticated
ekleme işlemi gerçekleştiren kullanıcının sıfırdan küçük veya sıfıra eşit gelire sahip bir kayıt oluşturmasına izin verilmediğini gösterir.
CLI aracılığıyla GraphQL yolunu yapılandırma ve REST ve GraphQL uç noktalarını genel olarak devre dışı bırakma olanağı
Şimdi komutu için init
üç seçeneği daha destekliyoruz:
graphql.path
: Özel GraphQL yolu sağlamak içinrest.disabled
: REST uç noktalarını genel olarak devre dışı bırakmak içingraphql.disabled
: GraphQL uç noktalarını genel olarak devre dışı bırakmak için
Örneğin, bir init
komut çalışma zamanı bölümüne sahip bir yapılandırma dosyası oluşturur:
dab init --database-type mssql --rest.disabled --graphql.disabled --graphql.path /gql
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/gql"
},
}
CLI'da görünümleri eklemek ve güncelleştirmek için önemli alanlar zorunlu
Artık kullanıcının CLI aracılığıyla yapılandırmaya yeni bir veritabanı görünümü (aracılığıyladab add
) eklediğinizde kullanıma sunulan seçenek source.key-fields
aracılığıyla anahtar alanlarını (birincil anahtar olarak kullanılacak) sağlaması zorunlu hale geldi. Ayrıca, CLI aracılığıyla yapılandırma dosyasında görünümün yapılandırmasındaki (aracılığıyla dab update
) herhangi bir öğe güncelleştirildiğinde, güncelleştirme temel alınan veritabanındaki görünümün tanımıyla ilgili herhangi bir şeyi değiştirirse (örneğin, kaynak türü, anahtar alanları), güncelleştirme komutunda anahtar alanlarının da belirtilmesi zorunlu olur.
Ancak, yapılandırmada belirtik birincil anahtarlar belirtilmeden görünümleri desteklemeye devam ediyoruz, ancak bu tür görünümlerin yapılandırmasının doğrudan yapılandırma dosyasına yazılması gerekir.
Örneğin, görünüm eklemek için bir dab add
komut kullanılır:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Bu komut, varlık için books_view
şu örneğe benzer bir yapılandırma oluşturur:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Azure depolama bağlantısını GitHub bağlantıları ile değiştirme
DAB artık açık kaynaklı olduğundan yapıtları depolama hesabından indirmemiz gerekmez. Bunun yerine, bunları doğrudan GitHub'dan indirebiliriz. Bu nedenle bağlantılar uygun şekilde güncelleştirilir.
Sürüm 0.5.34'teki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Çalışma zamanı düzeyinde REST ve GraphQL etkin bayrağını kabul edin
Çalışma zamanı düzeyindeki tüm varlıklar için REST/GraphQL isteklerini etkinleştirmeye veya devre dışı bırakmaya izin vermek için yeni bir seçenek eklenir. Genel olarak devre dışı bırakılırsa, bağımsız varlık ayarlarından bağımsız olarak REST veya GraphQL istekleri aracılığıyla hiçbir varlığa erişilemez. Genel olarak etkinleştirilirse, varlık düzeyi ayarları tarafından açıkça devre dışı bırakılmadığı sürece tek tek varlıklara varsayılan olarak erişilebilir.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
İstek günlüklerindeki bağıntı kimliği
Hata ayıklamaya yardımcı olmak için, bir istek sırasında oluşturulan tüm günlüklere bağıntı kimliği ekleriz. Birçok istekte bulunulabileceğinden, belirli bir isteğin günlüklerini tanımlamanın bir yolunun olması hata ayıklama işlemine yardımcı olmak için önemlidir.
Altyapı ve CLI'da Saklı Yordamlar için Joker Karakter İşlem Desteği
Saklı yordamlar için roller artık joker *
karakter eylemiyle yapılandırılabilir, ancak yalnızca eyleme execute
genişletilebilir.
Sürüm 0.5.32'deki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
CLI aracılığıyla rest yolunu özelleştirme olanağı
REST API'lerinin yolunu özelleştirmek için komutta init
yeni bir seçenek --rest.path
sunulur.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Bu komut REST uç noktalarını ön ekiyle rest-api
yapılandırıyor. REST uç noktalarının tam yolu şudur: https://<dab-server>/rest-api/<entity-name>
Seçenek kullanılmadığında --rest.path
, REST uç noktaları varsayılan ön ek api
ile yapılandırılır. Bu durumda tam yol şudur: https://<dab-server>/api/<entity-name>
MAR'da Veri API'si oluşturucu kapsayıcı görüntüsü
Azure Veritabanları için Veri API oluşturucusunun resmi docker görüntüleri artık Microsoft Artifact Registry'de kullanılabilir.
Yayımlanan görüntüleri kullanma yönergeleri için bkz. Microsoft container registry - Data API builder.
GraphQL parçaları desteği
Parçalar bir graphQL sorgusunun yeniden kullanılabilir bir parçasıdır. Aynı alanların farklı sorgularda sorgulanması gereken senaryolarda, yinelenen alanlar parça olarak adlandırılan tek bir yeniden kullanılabilir bileşende birleştirilebilir.
Parçalar hakkında daha fazla bilgi için bkz. GraphQL sorguları.
Türü olarak adlandırılan description
Character
bir parça daha sonra tanımlanır:
fragment description on Character {
name
homePlanet
primaryFunction
}
Tanımlanan parçadan yararlanan bir GraphQL sorgusu burada gösterildiği gibi oluşturulabilir:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Önceki sorgu için sonuç aşağıdaki alanları içerir:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
BinSkim'i açma ve Policheck uyarılarını düzeltme
BinSkim, derleyici/bağlayıcı ayarlarını ve güvenlikle ilgili diğer ikili özellikleri doğrulayan Taşınabilir Yürütülebilir (PE) hafif bir tarayıcıdır. Her işlem hattı çalıştırmasıyla BinSkim taramaları gerçekleştirmek için işlem hattında static-tools
bir işlem hattı görevi eklenir. PoliCheck sistemi, Genel Hazırlık ilkesinin bir parçası olarak Metin ve Kod Gözden Geçirme Gereksinimi ile uyumlu kalmaya yardımcı olan bir araç ve veri kümesidir. Policheck taramaları tarafından oluşturulan uyarılar, hassas terimlerle uyumlu olacak şekilde düzeltildi.
Sürüm 0.5.0'daki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Genel JSON Şeması
JSON Şemalarını destekleyen Visual Studio Code gibi bir IDE kullanıyorsanız, genel JSON şeması "intellisense" için destek sağlar. Klasördeki basic-empty-dab-config.json
samples
dosyanın el ile oluşturulurken dab-config.json
örnek bir başlangıç noktası vardır.
Genel Microsoft.DataApiBuilder
NuGet
Microsoft.DataApiBuilder
artık aşağıda gösterildiği gibi dotnet aracını kullanarak yükleme kolaylığı için burada genel bir NuGet paketi olarak kullanılabilir:
dotnet tool install --global Microsoft.DataApiBuilder
Azure SQL'de saklı yordamlar için yeni execute
eylem
Yapılandırma dosyasının bölümünde izin verilen tek eylem olarak yeni execute
bir eylem permissions
sunulur, ancak kaynak türü bir varlığını stored-procedure
destekliyorsa. Varsayılan olarak, bu tür varlıklar için yalnızca POST
yönteme izin verilir ve yalnızca GraphQL mutation
işlemi adlarına eklenen ön ek execute
ile yapılandırılır. Yapılandırma dosyasının bölümünde izin verilen methods
rest
öğesini açıkça belirtmek bu davranışı geçersiz kılar. Benzer şekilde, GraphQL operation
graphql
için bölümündeki bölümü geçersiz kılınabilir query
. Daha fazla bilgi için bkz. görünümler ve saklı yordamlar.
Yeni mappings
bölüm
Her entity
öğesinin mappings
altındaki bölümde, veritabanı nesnesi alan adları ile karşılık gelen kullanıma sunulan alan adları arasındaki eşlemeler hem GraphQL hem de REST uç noktaları için tanımlanır.
Biçim:
<database_field>: <entity_field>
Örnek:
"mappings":{
"title": "descriptions",
"completed": "done"
}
title
İlgili veritabanı nesnesindeki alan GraphQL türündeki veya REST isteği ve yanıt yükündeki alanla eşlenirdescription
.
Azure SQL'de Oturum Bağlamı desteği
Ek bir Güvenlik katmanını (örneğin, Satır Düzeyi Güvenlik (RLS) etkinleştirmek için DAB artık SESSION_CONTEXT aracılığıyla temel alınan Sql Server veritabanına veri göndermeyi destekliyor. Daha fazla ayrıntı için lütfen SESSION_CONTEXT: Çalışma Zamanı-Veritabanı Yetkilendirmesi hakkındaki bu ayrıntılı belgeye bakın.
PostgreSQL'de belge içindeki iç içe nesnelere filtre uygulama desteği
PostgreSQL ile artık şemanızda tanımlanan nesne veya dizi ilişkisini kullanabilirsiniz. Bu, tıpkı Azure SQL gibi iç içe nesneler üzerinde filtreleme işlemleri gerçekleştirmenizi sağlar.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Cosmos DB NoSQL'de skaler liste desteği
Artık Cosmos DB için Skalers sorgulama List
özelliği eklenmiştir.
Bu tür tanımını göz önünde bulundurun.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Artık aşağıdaki gibi bir Liste getiren bir sorgu çalıştırabilirsiniz:
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Günlük düzeyini kullanarak gelişmiş günlük kaydı desteği
- Ve olduğunda ve sırasıyla ve olarak güncelleştirildiğinde
host.mode
Error
Production
Development
Debug
altyapı için varsayılan günlük düzeyleri. - Altyapı başlatma sırasında, bir varlığın her sütunu için kullanıma sunulan alan adları ve birincil anahtar gibi bilgiler günlüğe kaydedilir. Bu davranış, alan eşlemesi otomatik olarak oluşturulduğunda bile tür olur.
- Yerel yürütme senaryosunda, altyapı başlatma sırasında oluşturulan ve yürütülen tüm sorgular düzeyinde günlüğe kaydedilir
Debug
. - Her varlık için ,
target.fields
vecardinality
gibisource.fields
ilişki alanları günlüğe kaydedilir. Çoka çok ilişkiler varsa,linking.object
veritabanından (veya yapılandırma dosyasından) çıkarılmış ,linking.source.fields
velinking.target.fields
günlüğe kaydedilir. - Gelen her istek için, isteğin rolü ve kimlik doğrulama durumu günlüğe kaydedilir.
- CLI'da sürüm,
Microsoft.DataAPIBuilder
ilgili komutun yürütülmesiyle ilişkili günlüklerle birlikte günlüğe kaydedilir.
Güncelleştirilmiş CLI
--no-https-redirect
seçeneği komutunastart
eklenir. Bu seçenekle, 'denhttp
https
isteklerin otomatik olarak yeniden yönlendirilmesi önlenebilir.MsSql'de oturum bağlamı komutu kullanılarak
init
etkinleştirilebilir--set-session-context true
. Bu örnekte örnek bir komut gösterilmiştir:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Sağlayıcı, hedef kitle ve veren gibi kimlik doğrulama ayrıntıları, komutundaki
init
,--auth.audience
ve--auth.issuer.
seçenekleri--auth.provider
kullanılarak yapılandırılabilir. Bu örnekte örnek bir komut gösterilir:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Varlık adı belirtilmediğinde kullanıcı dostu hata iletisi.
Sürüm 0.4.11'deki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Bölüm için data-source
güncelleştirilmiş JSON şeması
data-source
Yapılandırma dosyasındaki bölüm desteklenen tüm veritabanlarında tutarlı olacak şekilde güncelleştirilir, ancak yine de her veritabanının özel yapılandırmalara sahip olmasını sağlar. Veritabanına özgü tüm özellikleri gruplandırmak için yeni bir bölüm options
kullanıma sunulmuştur. Örnek:
{
"$schema": "https://dataapibuilder.azureedge.net/schemas/v0.4.11-alpha/dab.draft.schema.json",
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
},
"connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;"
}
}
bölümünde bulunan options
öğeler seçilen database-type
öğesine bağlıdır.
Azure SQL ve SQL Server'da belge içinde iç içe nesnelere filtre uygulama desteği
Azure SQL ve SQL Server ile şemanızda tanımlanan nesne veya dizi ilişkisini kullanabilirsiniz ve bu da iç içe nesneler üzerinde filtreleme işlemleri gerçekleştirmenizi sağlar.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Geliştirilmiş saklı yordam desteği
REST ve GraphQL'de saklı yordam için tam destek. Parametrelerle saklı yordam artık %100 destekleniyor. Saklı yordamlarla Veri API oluşturucusu'nu kullanmayı öğrenmek için Saklı Yordamlar belgelerine göz atın.
Cosmos DB için yeni database-type
değer yeniden adlandırıldı
Cosmos DB ile PostgreSQL API desteği ekledik. Birleştirilmiş data-source
bir bölümle, özniteliği database-type
veritabanı türünü belirtir. Cosmos DB birden çok API'yi desteklediğinden, şu anda desteklenen veritabanı türleri ve cosmosdb_postgresql
'tircosmosdb_nosql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
için CLI özelliklerini yeniden adlandırma cosmosdb_nosql
Önceki bölümlerde açıklanan yapılandırma değişikliklerinin ardından artık CLI özellikleri Cosmos DB NoSQL API'sine göre ve cosmosdb_nosql-container
olarak cosmosdb_nosql-database
yeniden adlandırılıyor.
dab init --database-type "cosmosdb_nosql" --graphql-schema schema.gql --cosmosdb_nosql-database PlaygroundDB --cosmosdb_nosql-container "books" --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;" --host-mode "Development"
Yönetilen Kimlik artık Postgres ile destekleniyor
Artık kullanıcı alternatif olarak yönetilen kimlikle kimlik doğrulaması yapmak için yapılandırmada erişim belirtecini belirtebilir. Alternatif olarak, artık kullanıcı bağlantı dizesinde parolayı belirtemez ve çalışma zamanı varsayılan yönetilen kimlik belirtecini getirmeye çalışır. Bu başarısız olursa, bağlantı dizesinde parolasız bağlantı denenir.
Azure MySQL için Microsoft Entra ID kullanıcı kimlik doğrulamasını destekleme
Microsoft Entra ID eklentisiyle MySQL ile kimlik doğrulaması yapmak için parola alanı olarak kullanıcı belirteci eklendi.
Sürüm 0.3.7'deki yenilikler
Bu sürüm için sürüm notlarının tam listesi GitHub'da bulunur: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Desteği görüntüleme
Görünümler artık hem REST hem de GraphQL'de desteklenmektedir. Örneğin, dbo.vw_books_details
bir görünümünüz varsa aşağıdaki dab
komut kullanılarak gösterilebilir:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
Bu source.key-fields
seçenek, görünümdeki hangi alanların bir öğeyi benzersiz olarak tanımlamak için kullanılacağını belirtmek için kullanılır; böylece görünümler için birincil anahtara göre gezinti de uygulanabilir. Görünümün güncelleştirilebilir olup olmadığı durumuna bağlı olarak eylemleri (örneğin, create
eylem) etkinleştirmek veya devre dışı bırakmak için DAB'yi yapılandıran geliştiricinin sorumluluğudur.
Saklı yordam desteği
Saklı yordamlar artık REST istekleri için desteklenmektedir. Saklı yordamınız varsa, örneğin dbo.stp_get_all_cowritten_books_by_author
aşağıdaki dab
komut kullanılarak gösterilebilir:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
PARAMETRESI REST uç noktası çağrılırken URL sorgu dizesinde geçirilebilir:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Not
Saklı yordamı çağırırken belirli HTTP fiillerine izin vermek veya reddetmek için eylemleri (örneğin eylem create
) etkinleştirmek veya devre dışı bırakmak için DAB'yi yapılandıran geliştiricinin sorumluluğundadır. Örneğin, örnekte kullanılan saklı yordam için, amacının bazı verileri döndürmek olduğu düşünüldüğünde, yalnızca eyleme izin read
vermek mantıklı olacaktır.
Microsoft Entra Id kimlik doğrulaması
Microsoft Entra ID kimlik doğrulaması artık tam olarak çalışıyor. Daha fazla bilgi için bkz. Microsoft Entra Id ile kimlik doğrulaması.
Yerel kimlik doğrulaması için yeni simülatör kimlik doğrulama sağlayıcısı
Yerel olarak geliştirme sırasında kimliği doğrulanmış isteklerin testini basitleştirmek için yeni simulator
bir kimlik doğrulama sağlayıcısı kullanılabilir. Sağlayıcı simulator
, Data API oluşturucu altyapısına tüm istekleri kimliği doğrulanmış olarak kabul etme talimatı veren yapılandırılabilir bir kimlik doğrulama sağlayıcısıdır. Diğer ayrıntılar burada: Yerel Kimlik Doğrulaması
Azure Cosmos DB'de belge içindeki iç içe nesnelere filtre uygulama desteği
Azure Cosmos DB ile şemanızda tanımlanan nesne veya dizi ilişkisini kullanabilirsiniz. Bu ilişki, iç içe nesneler üzerinde filtreleme işlemleri gerçekleştirmenizi sağlar.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}