Bagikan melalui


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:

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

  1. Skema validasi
  2. Validasi properti konfigurasi
  3. Validasi izin konfigurasi
  4. Validasi koneksi database
  5. Validasi Metadata Entitas

Fitur Pratinjau

  • Dukungan DWSQL awal. #1864
  • Dukungan untuk beberapa sumber data. #1709

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:

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

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 kustom
  • rest.disabled: Untuk menonaktifkan titik akhir REST secara global
  • graphql.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
    }

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 apidefault . 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 adalah Production dan Development diperbarui ke Error dan Debug 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.fieldsdan cardinality dicatat. Jika ada banyak hubungan, , linking.object, linking.source.fieldsdan linking.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 ke start perintah. Dengan opsi ini, pengalihan otomatis permintaan dari http ke https dapat dicegah.

  • Di MsSql, konteks sesi dapat diaktifkan menggunakan --set-session-context true dalam init 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. dalam init 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
  }
}