Apa yang baru dalam versi 0.11 dan yang lebih lama
Catatan rilis dan informasi tentang semua pembaruan dan penyempurnaan di pembuat API Data versi 0.11 dan yang lebih lama.
Apa yang baru dalam versi 0.11
Catatan rilis dan informasi tentang pembaruan dan penyempurnaan di pembuat API Data versi 0.10.
Dukungan GraphQL untuk Gudang Data SQL
Gudang Data SQL sekarang mendukung titik akhir GraphQL.
Azure Cosmos DB yang disempurnakan untuk pemfilteran NoSQL
Azure Cosmos DB for NoSQL sekarang memiliki dukungan untuk filter berlapis, variabel ID, dan pencarian array string dengan contains
operator.
Mengaktifkan pengumpulan data aplikasi dengan antarmuka baris perintah
Anda sekarang dapat menggunakan antarmuka baris perintah (CLI) DAB untuk mengaktifkan pengumpulan data dengan Application Insights.
Apa yang baru dalam versi 0.10
Catatan rilis dan informasi tentang pembaruan dan penyempurnaan di pembuat API Data versi 0.10.
Fokus kami bergeser ke stabilitas saat kami mendekati Ketersediaan Umum. Meskipun tidak semua upaya dalam kualitas kode dan stabilitas mesin dirinci dalam artikel ini, daftar ini menyoroti pembaruan yang signifikan.
Catatan rilis GitHub
Tinjau halaman rilis ini untuk daftar komprehensif semua perubahan dan peningkatan:
- 2024-02-06 - Versi 0.10.23
- 2024-01-31 - Versi 0.10.21
- 2023-12-07 - Versi 0.10.11
Penembolokan dalam memori
Versi 0.10 memperkenalkan penembolokan dalam memori untuk titik akhir REST dan GraphQL. Fitur ini, dirancang untuk penembolokan internal, meletakkan dasar untuk penembolokan terdistribusi di masa mendatang. Penembolokan dalam memori mengurangi beban database dari kueri berulang.
Skenario Penembolokan
- Mengurangi beban database: Cache menyimpan hasil kueri mahal, menghilangkan kebutuhan akan panggilan database berulang.
- Meningkatkan skalabilitas API: Penembolokan mendukung panggilan API yang lebih sering tanpa meningkatkan permintaan database, secara signifikan menskalakan kemampuan API Anda.
Perubahan Konfigurasi
Pengaturan penembolokan tersedia di bagian runtime
dan untuk setiap entitas, menawarkan kontrol terperinci.
Pengaturan runtime:
{
"runtime": {
"cache": {
"enabled": true,
"ttl-seconds": 6
}
}
}
- Penembolokan dinonaktifkan secara default.
- Time-to-live (TTL) default adalah 5 detik.
Pengaturan entitas:
{
"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
}
}
}
Validasi Konfigurasi di CLI
CLI sekarang mendukung dab validate
pemeriksaan file konfigurasi untuk kesalahan atau inkonsistensi, meningkatkan alur kerja pengembangan.
Langkah-langkah Validasi
- Skema validasi
- Validasi properti konfigurasi
- Validasi izin konfigurasi
- Validasi koneksi database
- Validasi Metadata Entitas
Fitur Pratinjau
Apa yang baru dalam versi 0.9
Berikut adalah detail tentang perubahan dan peningkatan yang paling relevan di penyusun Api Data 0.9.
Catatan rilis GitHub
Tinjau halaman rilis ini untuk daftar komprehensif semua perubahan dan peningkatan:
Mengaktifkan Application Insights saat menghost sendiri DAB
Log sekarang dapat dialirkan ke Application Insights untuk pengalaman pemantauan dan penelusuran kesalahan yang lebih baik, terutama ketika penyusun API Data disebarkan di Azure. Bagian baru telemetry
dapat ditambahkan ke file konfigurasi untuk mengaktifkan dan mengonfigurasi integrasi dengan Application Insights:
"telemetry": {
"application-insights": {
"enabled": true, // To enable/disable application insights telemetry
"connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
}
}
Baca semua detail di halaman dokumentasi Gunakan Application Insights .
Dukungan untuk mengabaikan bidang asing dalam isi permintaan REST
Dengan opsi baru request-body-strict
, Anda sekarang dapat memutuskan apakah memiliki bidang tambahan dalam payload REST menghasilkan kesalahan (perilaku default, kompatibel mundur) atau bidang tambahan diabaikan secara diam-diam.
"runtime": {
"rest": {
"enabled": true,
"path": "/api",
"request-body-strict": true
},
...
}
Dengan mengatur request-body-strict
opsi ke false
, bidang yang tidak memiliki pemetaan ke objek database terkait diabaikan tanpa menghasilkan kesalahan apa pun.
Menambahkan Nama Aplikasi untuk mssql
koneksi
Penyusun API Data sekarang menyuntikkan dalam string koneksi, hanya untuk mssql
jenis database, nilai dab-<version>
sebagai Application Name
properti, sehingga lebih mudah untuk mengidentifikasi koneksi di server database. Jika Application Name
sudah ada dalam string koneksi, versi penyusun Api Data ditambahkan ke dalamnya.
Jenis data dukungan time
di mssql
time
jenis data sekarang didukung dalam mssql
database.
Mutasi pada tabel dengan pemicu untuk mssql
Mutasi sekarang didukung penuh pada tabel dengan pemicu untuk mssql
database.
Mencegah pembaruan/penyisipan bidang baca-saja dalam tabel menurut pengguna
Secara otomatis mendeteksi bidang baca-saja database dan mencegah pembaruan/penyisipan bidang tersebut oleh pengguna.
Apa yang baru dalam versi 0.8
Berikut adalah detail tentang perubahan dan peningkatan yang paling relevan di penyusun Api Data 0.8.
Catatan rilis GitHub
Tinjau halaman rilis ini untuk daftar komprehensif semua perubahan dan peningkatan:
- 0.8.52: Halaman rilis GitHub
- 0.8.51: Halaman rilis GitHub
- 0.8.50: Halaman rilis GitHub
- 0.8.49: Halaman rilis GitHub
Menambahkan dukungan untuk file .env
Variabel lingkungan melindungi rahasia dari paparan teks biasa dan memungkinkan pertukaran nilai dalam pengaturan yang berbeda. Namun, variabel ini harus diatur baik dalam lingkup pengguna atau komputer, yang dapat menyebabkan variabel lintas proyek "pendarahan" jika nama variabel diduplikasi. Alternatif yang lebih baik adalah file lingkungan. Untuk informasi selengkapnya, lihat file lingkungan di Pembuat API Data - blog.
Apa yang baru dalam versi 0.7.6
Artikel ini menjelaskan catatan rilis untuk rilis 0.7.6.
Permintaan pull GitHub
- Masalah penolakan akses filter alamat untuk Cosmos
- Perbaikan bug untuk autentikasi bidang Azure Cosmos DB ketika graphql adalah "true," sertakan adalah "*"
Dukungan Awal untuk pembuatan dokumen deskripsi OpenAPI v3-0-1
Penyusun API Data mendukung standar OpenAPI untuk menghasilkan dan mengekspos dokumen deskripsi yang berisi informasi berguna tentang layanan. Dokumen ini dibuat dari file konfigurasi runtime dan metadata untuk setiap objek database. Objek ini dikaitkan dengan entitas yang diaktifkan REST yang ditentukan dalam file konfigurasi yang sama. Mereka kemudian diekspos melalui UI dan tersedia sebagai file serial.
Untuk informasi selengkapnya tentang spesifikasi penyusun OpenAPI dan Api Data, lihat OpenAPI.
Memperbolehkan penggabungan file konfigurasi
Menambahkan kemampuan untuk menggabungkan dua file konfigurasi secara otomatis.
Dimungkinkan untuk mempertahankan beberapa pasang file konfigurasi khusus garis besar dan lingkungan untuk menyederhanakan manajemen pengaturan khusus lingkungan. Misalnya, dimungkinkan untuk mempertahankan konfigurasi terpisah untuk Pengembangan dan Produksi. Langkah ini melibatkan memiliki file konfigurasi dasar yang memiliki semua pengaturan umum antara lingkungan yang berbeda. Kemudian dengan mengatur DAB_ENVIRONMENT
variabel dimungkinkan untuk mengontrol file konfigurasi mana yang akan digabungkan untuk dikonsumsi oleh penyusun Api Data.
Untuk informasi selengkapnya, lihat referensi CLI.
Menjalankan Mutasi GraphQL dan REST dalam transaksi
Penyusun API Data membuat transaksi database untuk menjalankan jenis permintaan GraphQL dan REST tertentu.
Ada banyak permintaan, yang melibatkan pembuatan lebih dari satu kueri database untuk dicapai. Misalnya untuk mengembalikan hasil dari pembaruan, pertama kueri untuk pembaruan harus dibuat, maka nilai baru harus dibaca sebelum dikembalikan. Saat permintaan memerlukan beberapa kueri database untuk dijalankan, penyusun Api Data sekarang menjalankan kueri database ini dalam satu transaksi.
Anda dapat membaca selengkapnya tentang kemampuan ini dalam konteks REST dalam dokumentasi REST dan GraphQL dalam dokumentasi GraphQL.
Apa yang baru dalam versi 0.6.14
Artikel ini menjelaskan patch untuk rilis Maret 2023 untuk penyusun Api Data untuk Azure Database.
Perbaikan Bug
- Mengatasi masalah akses filter kueri yang ditolak untuk Cosmos.
- Cosmos DB saat ini tidak mendukung otorisasi tingkat bidang, untuk menghindari situasi ketika pengguna secara tidak sengaja meneruskan
field
izin dalam konfigurasi runtime, kami menambahkan pemeriksaan validasi.
Apa yang baru dalam versi 0.6.13
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.
Perintah CLI baru untuk mengekspor skema GraphQL
Opsi baru ditambahkan untuk mengekspor skema GraphQL. Ini memulai server DAB dan kemudian mengkuerinya untuk mendapatkan skema sebelum menulisnya ke lokasi yang disediakan.
dab export --graphql -c dab-config.development.json -o ./schemas
Perintah ini menghasilkan file skema GraphQL di direktori ./schemas. Jalur ke file konfigurasi adalah parameter opsional, yang default ke 'dab-config.json' kecuali 'dab-config.<>DAB_ENVIRONMENT.json' ada, di mana DAB_ENVIRONMENT adalah variabel lingkungan.
Dukungan kebijakan database untuk membuat tindakan untuk MsSql
Kebijakan database sekarang didukung untuk semua operasi CRUD (Create, Read, Update, Delete) untuk MsSql. Contohnya:
"entities":{
"Revenue":{
"source": "revenues",
"permissions":[
"role": "authenticated",
"actions": [
{
"action": "Create",
"policy": {
"database": "@item.revenue gt 0"
}
},
"read",
"update",
"delete"
]
]
}
}
Konfigurasi sebelumnya untuk Revenue
entitas menunjukkan bahwa pengguna yang melakukan operasi penyisipan dengan peran Authenticated
tidak diizinkan untuk membuat rekaman dengan pendapatan kurang dari atau sama dengan nol.
Kemampuan untuk mengonfigurasi jalur GraphQL dan menonaktifkan titik akhir REST dan GraphQL secara global melalui CLI
Kami sekarang mendukung tiga opsi lagi untuk init
perintah:
graphql.path
: Untuk menyediakan jalur GraphQL kustomrest.disabled
: Untuk menonaktifkan titik akhir REST secara globalgraphql.disabled
: Untuk menonaktifkan titik akhir GraphQL secara global
Misalnya, perintah init
akan menghasilkan file konfigurasi dengan bagian runtime:
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"
},
}
Bidang kunci wajib untuk menambahkan dan memperbarui tampilan di CLI
Sekarang wajib bagi pengguna untuk menyediakan bidang kunci (untuk digunakan sebagai kunci primer) melalui opsi source.key-fields
yang diekspos setiap kali menambahkan tampilan database baru (melalui dab add
) ke konfigurasi melalui CLI. Selain itu, setiap kali memperbarui apa pun dalam konfigurasi tampilan (melalui dab update
) dalam file konfigurasi melalui CLI, jika pembaruan mengubah apa pun yang terkait dengan definisi tampilan dalam database yang mendasar (misalnya, jenis sumber, bidang kunci), wajib untuk menentukan bidang kunci dalam perintah pembaruan juga.
Namun, kami masih mendukung tampilan tanpa memiliki kunci primer eksplisit yang ditentukan dalam konfigurasi, tetapi konfigurasi untuk tampilan tersebut harus ditulis langsung dalam file konfigurasi.
Misalnya, dab add
perintah digunakan untuk menambahkan tampilan:
dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true
Perintah ini menghasilkan konfigurasi untuk books_view
entitas yang seperti contoh ini:
"books_view": {
"source": {
"type": "view",
"object": "books_view",
"key-fields":[
"id"
]
},
"permissions": [
{
"role": "anonymous",
"actions": [
"*"
]
}
],
"rest": true,
"graphql": true
}
Mengganti tautan penyimpanan Azure dengan tautan GitHub
Karena DAB sekarang bersumber terbuka, kita tidak perlu mengunduh artefak dari akun penyimpanan. Sebagai gantinya, kita dapat langsung mengunduhnya dari GitHub. Oleh karena itu, tautan diperbarui dengan sesuai.
Apa yang baru dalam versi 0.5.34
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.
Bendera honor yang diaktifkan REST dan GraphQL pada tingkat runtime
Opsi baru ditambahkan untuk memungkinkan mengaktifkan atau menonaktifkan permintaan REST/GraphQL untuk semua entitas pada tingkat runtime. Jika dinonaktifkan secara global, tidak ada entitas yang dapat diakses melalui permintaan REST atau GraphQL terlepas dari pengaturan entitas individual. Jika diaktifkan secara global, entitas individual dapat diakses secara default kecuali dinonaktifkan secara eksplisit oleh pengaturan tingkat entitas.
"runtime": {
"rest": {
"enabled": false,
"path": "/api"
},
"graphql": {
"allow-introspection": true,
"enabled": false,
"path": "/graphql"
}
}
ID Korelasi dalam log permintaan
Untuk membantu penelusuran kesalahan, kami melampirkan ID korelasi ke log apa pun yang dihasilkan selama permintaan. Karena banyak permintaan mungkin dibuat, memiliki cara untuk mengidentifikasi log ke permintaan tertentu penting untuk membantu proses penelusuran kesalahan.
Dukungan Operasi Wildcard untuk Prosedur Tersimpan di Mesin dan CLI
Untuk prosedur tersimpan, peran sekarang dapat dikonfigurasi dengan tindakan kartubebas *
tetapi hanya meluas ke execute
tindakan.
Apa yang baru dalam versi 0.5.32
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.
Kemampuan untuk menyesuaikan jalur istirahat melalui CLI
Opsi --rest.path
baru diperkenalkan dalam init
perintah untuk menyesuaikan jalur untuk REST API.
dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api"
Perintah ini mengonfigurasi titik akhir REST dengan awalan rest-api
. Jalur lengkap untuk titik akhir REST adalah https://<dab-server>/rest-api/<entity-name>
Saat --rest.path
opsi tidak digunakan, titik akhir REST dikonfigurasi dengan awalan api
default . Jalur lengkap dalam kasus ini adalah https://<dab-server>/api/<entity-name>
Gambar kontainer penyusun API Data di MAR
Gambar docker resmi untuk penyusun Api Data untuk Azure Database sekarang tersedia di Microsoft Artifact Registry.
Untuk petunjuk penggunaan gambar yang diterbitkan, lihat Registri kontainer Microsoft - Penyusun API Data.
Dukungan untuk fragmen GraphQL
Fragmen adalah bagian yang dapat digunakan kembali dari kueri graphQL. Dalam skenario di mana bidang yang sama harus dikueri dalam kueri yang berbeda, bidang berulang dapat dikonsolidasikan ke dalam satu komponen yang dapat digunakan kembali yang disebut fragmen.
Untuk informasi selengkapnya tentang fragmen, lihat Kueri GraphQL.
Fragmen yang disebut description
pada jenis Character
didefinisikan berikutnya:
fragment description on Character {
name
homePlanet
primaryFunction
}
Kueri GraphQL yang menggunakan fragmen yang ditentukan dapat dibuat seperti yang diilustrasikan di sini:
{
Player1: Player{
id
playerDescription{
...description
}
}
}
Untuk kueri sebelumnya, hasilnya berisi bidang berikut ini:
{
Player1: Player{
id
playerDescription{
name
homePlanet
primaryFunction
}
}
}
Aktifkan BinSkim dan perbaiki pemberitahuan Policheck
BinSkim adalah pemindai ringan Portable Executable (PE) yang memvalidasi pengaturan compiler/linker dan karakteristik biner terkait keamanan lainnya. Tugas alur dalam static-tools
alur ditambahkan untuk melakukan pemindaian BinSkim dengan setiap eksekusi alur. Sistem PoliCheck adalah seperangkat alat dan data yang membantu tetap mematuhi Persyaratan Tinjauan Teks dan Kode, sebagai bagian dari kebijakan Kesiapan Global secara keseluruhan. Pemberitahuan yang dihasilkan oleh pemindaian Policheck diperbaiki agar mematuhi persyaratan sensitif.
Apa yang baru dalam versi 0.5.0
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.
Skema JSON Publik
Skema JSON publik memberi Anda dukungan untuk "intellisense," jika Anda menggunakan IDE seperti Visual Studio Code yang mendukung Skema JSON. File basic-empty-dab-config.json
dalam samples
folder memiliki contoh titik awal saat membuat dab-config.json
file secara manual.
NuGet Publik Microsoft.DataApiBuilder
Microsoft.DataApiBuilder
sekarang tersedia sebagai paket NuGet publik di sini untuk kemudahan penginstalan menggunakan alat dotnet sebagai berikut:
dotnet tool install --global Microsoft.DataApiBuilder
Tindakan baru execute
untuk prosedur tersimpan di Azure SQL
Tindakan baru execute
diperkenalkan sebagai satu-satunya tindakan yang diizinkan di bagian permissions
file konfigurasi hanya ketika jenis sumber mendukung entitas stored-procedure
. Secara default, hanya POST
metode yang diizinkan untuk entitas tersebut dan hanya operasi GraphQL mutation
yang dikonfigurasi dengan awalan execute
yang ditambahkan ke namanya. Secara eksplisit menentukan yang diizinkan methods
di bagian rest
file konfigurasi akan mengambil alih perilaku ini. Demikian pula, untuk GraphQL, operation
di bagian , graphql
dapat ditimpa menjadi query
sebagai gantinya. Untuk informasi selengkapnya, lihat tampilan dan prosedur tersimpan.
Bagian baru mappings
Di bagian mappings
di bawah setiap entity
, pemetaan antara nama bidang objek database dan nama bidang yang diekspos terkait ditentukan untuk titik akhir GraphQL dan REST.
Formatnya adalah:
<database_field>: <entity_field>
Contohnya:
"mappings":{
"title": "descriptions",
"completed": "done"
}
Bidang title
dalam objek database terkait dipetakan ke description
bidang dalam jenis GraphQL atau di payload permintaan dan respons REST.
Dukungan untuk Konteks Sesi di Azure SQL
Untuk mengaktifkan lapisan Keamanan tambahan (misalnya, Keamanan Tingkat Baris (RLS)), DAB sekarang mendukung pengiriman data ke database Sql Server yang mendasar melalui SESSION_CONTEXT. Untuk detail selengkapnya, silakan lihat dokumen terperinci ini tentang SESSION_CONTEXT: Runtime ke Otorisasi Database.
Dukungan untuk filter pada objek berlapis dalam dokumen di PostgreSQL
Dengan PostgreSQL, Anda sekarang dapat menggunakan hubungan objek atau array yang ditentukan dalam skema Anda, yang memungkinkan untuk melakukan operasi filter pada objek berlapis seperti Azure SQL.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Mendukung daftar skalar di Cosmos DB NoSQL
Kemampuan untuk mengkueri List
Skalar sekarang ditambahkan untuk Cosmos DB.
Pertimbangkan definisi jenis ini.
type Planet @model(name:"Planet") {
id : ID,
name : String,
dimension : String,
stars: [Star]
tags: [String!]
}
Sekarang dimungkinkan untuk menjalankan kueri yang mengambil Daftar seperti
query ($id: ID, $partitionKeyValue: String) {
planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
tags
}
}
Dukungan pengelogan yang disempurnakan menggunakan tingkat log
- Tingkat log default untuk mesin ketika
host.mode
adalahProduction
danDevelopment
diperbarui keError
danDebug
masing-masing. - Selama start-up mesin, untuk setiap kolom entitas, informasi seperti nama bidang yang diekspos dan kunci primer dicatat. Perilaku ini terjadi bahkan ketika pemetaan bidang dibuat secara otomatis.
- Dalam skenario eksekusi lokal, semua kueri yang dihasilkan dan dijalankan selama start-up mesin dicatat pada
Debug
tingkat . - Untuk setiap entitas, bidang hubungan seperti
source.fields
, ,target.fields
dancardinality
dicatat. Jika ada banyak hubungan, ,linking.object
,linking.source.fields
danlinking.target.fields
yang disimpulkan dari database (atau dari file konfigurasi) dicatat. - Untuk setiap permintaan masuk, peran dan status autentikasi permintaan dicatat.
- Di CLI,
Microsoft.DataAPIBuilder
versi dicatat bersama dengan log yang terkait dengan eksekusi perintah masing-masing.
CLI yang diperbarui
--no-https-redirect
opsi ditambahkan kestart
perintah. Dengan opsi ini, pengalihan otomatis permintaan darihttp
kehttps
dapat dicegah.Di MsSql, konteks sesi dapat diaktifkan menggunakan
--set-session-context true
dalaminit
perintah . Contoh perintah ditampilkan dalam contoh ini:dab init --database-type mssql --connection-string "Connection String" --set-session-context true
Detail autentikasi seperti penyedia, audiens, dan pengeluar sertifikat dapat dikonfigurasi menggunakan opsi
--auth.provider
,--auth.audience
, dan--auth.issuer.
dalaminit
perintah . Contoh perintah ditampilkan dalam sampel ini:dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
Pesan kesalahan ramah pengguna saat nama entitas tidak ditentukan.
Apa yang baru dalam versi 0.4.11
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.
Skema JSON yang diperbarui untuk data-source
bagian
Bagian data-source
dalam file konfigurasi diperbarui agar konsisten di semua database yang didukung tetapi masih memungkinkan setiap database memiliki konfigurasi kustom. Bagian options
baru diperkenalkan untuk mengelompokkan semua properti yang khusus untuk database. Contohnya:
{
"$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;"
}
}
Elemen yang tersedia di bagian options
tergantung pada yang dipilih database-type
.
Dukungan untuk filter pada objek berlapis dalam dokumen di Azure SQL dan SQL Server
Dengan Azure SQL dan SQL Server, Anda dapat menggunakan hubungan objek atau array yang ditentukan dalam skema Anda, yang memungkinkan untuk melakukan operasi filter pada objek berlapis.
query {
books(filter: { series: { name: { eq: "Foundation" } } }) {
items {
title
year
pages
}
}
}
Dukungan prosedur tersimpan yang ditingkatkan
Dukungan penuh untuk prosedur tersimpan di REST dan GraphQL. Prosedur tersimpan dengan parameter sekarang didukung 100%. Lihat dokumentasi Prosedur Tersimpan untuk mempelajari cara menggunakan penyusun API Data dengan prosedur tersimpan.
Nilai baru database-type
diganti namanya untuk Cosmos DB
Kami menambahkan dukungan untuk PostgreSQL API dengan Cosmos DB. Dengan bagian terkonsolidasi data-source
, atribut database-type
menunjukkan jenis database. Karena Cosmos DB mendukung beberapa API, jenis database yang saat ini didukung adalah cosmosdb_nosql
dan cosmosdb_postgresql
.
"data-source": {
"database-type": "cosmosdb_nosql",
"options": {
"database": "PlaygroundDB",
"graphql-schema": "schema.gql"
}
}
Mengganti nama properti CLI untuk cosmosdb_nosql
Mengikuti perubahan konfigurasi yang dijelaskan di bagian sebelumnya, sekarang properti CLI diganti namanya sebagai cosmosdb_nosql-database
dan cosmosdb_nosql-container
untuk Cosmos DB NoSQL API.
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"
Identitas Terkelola sekarang didukung dengan Postgres
Sekarang pengguna dapat menentukan token akses dalam konfigurasi untuk mengautentikasi dengan Identitas Terkelola. Atau, sekarang pengguna hanya tidak dapat menentukan kata sandi dalam string koneksi dan runtime mencoba mengambil token identitas terkelola default. Jika ini gagal, koneksi dicoba tanpa kata sandi dalam string koneksi.
Mendukung autentikasi pengguna ID Microsoft Entra untuk Azure MySQL
Menambahkan token pengguna sebagai bidang kata sandi untuk mengautentikasi dengan MySQL dengan plugin ID Microsoft Entra.
Apa yang baru dalam versi 0.3.7
Daftar lengkap catatan rilis untuk versi ini tersedia di GitHub: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.
Lihat dukungan
Tampilan sekarang didukung baik di REST maupun GraphQL. Jika Anda memiliki tampilan, misalnya dbo.vw_books_details
dapat diekspos menggunakan perintah berikut dab
:
dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"
Opsi source.key-fields
ini digunakan untuk menentukan bidang mana dari tampilan yang digunakan untuk mengidentifikasi item secara unik, sehingga navigasi dengan kunci primer dapat diimplementasikan juga untuk tampilan. Pengembang bertanggung jawab mengonfigurasi DAB untuk mengaktifkan atau menonaktifkan tindakan (misalnya, create
tindakan) tergantung pada apakah tampilan dapat diperbarui atau tidak.
Dukungan prosedur tersimpan
Prosedur tersimpan sekarang didukung untuk permintaan REST. Jika Anda memiliki prosedur tersimpan, misalnya dbo.stp_get_all_cowritten_books_by_author
prosedur tersebut dapat diekspos menggunakan perintah berikut dab
:
dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true
Parameter dapat diteruskan dalam string kueri URL saat memanggil titik akhir REST:
http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov
Catatan
Pengembang bertanggung jawab mengonfigurasi DAB untuk mengaktifkan atau menonaktifkan tindakan (misalnya, create
tindakan) untuk mengizinkan atau menolak kata kerja HTTP tertentu saat memanggil prosedur tersimpan. Misalnya, untuk prosedur tersimpan yang digunakan dalam contoh, mengingat bahwa tujuannya adalah untuk mengembalikan beberapa data, masuk akal untuk hanya mengizinkan read
tindakan.
Autentikasi ID Microsoft Entra
Autentikasi ID Microsoft Entra sekarang berfungsi penuh. Untuk informasi selengkapnya, lihat autentikasi dengan ID Microsoft Entra.
Penyedia autentikasi simulator baru untuk autentikasi lokal
Untuk menyederhanakan pengujian permintaan terautentikasi saat mengembangkan secara lokal, penyedia autentikasi baru simulator
tersedia. Penyedia simulator
adalah penyedia autentikasi yang dapat dikonfigurasi, yang menginstruksikan mesin pembuat API Data untuk memperlakukan semua permintaan sebagai terautentikasi. Detail selengkapnya di sini: Autentikasi Lokal
Dukungan untuk filter pada objek berlapis dalam dokumen di Azure Cosmos DB
Dengan Azure Cosmos DB, Anda dapat menggunakan hubungan objek atau array yang ditentukan dalam skema Anda, yang memungkinkan untuk melakukan operasi filter pada objek berlapis.
query {
books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
id
name
}
}