Menggunakan lingkungan file konfigurasi dengan penyusun API Data
Panduan ini menjelaskan langkah-langkah untuk menargetkan lingkungan pengembangan menggunakan file konfigurasi. File konfigurasi hasil akhir harus cukup fleksibel sehingga konfigurasi database produksi dapat ditambahkan di masa depan dengan perubahan minimal.
Prasyarat
- Database SQL yang ada.
- Klien manajemen data
- Jika Anda tidak memiliki klien yang terinstal, instal Azure Data Studio
- CLI penyusun API Data. Pasang CLI
Create tabel dan data SQL
Create tabel dengan data fiktif untuk digunakan dalam skenario contoh ini.
Sambungkan ke server dan database SQL menggunakan klien atau alat pilihan Anda. Contohnya termasuk, tetapi tidak terbatas pada: SQL Server Management Studio, Azure Data Studio, dan ekstensi SQL Server untuk Visual Studio Code.
Create tabel bernama
Books
denganid
kolom danname
.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ); GO
Sisipkan empat contoh baris buku ke
Books
dalam tabel.INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
Uji data Anda dengan kueri sederhana
SELECT *
.SELECT * FROM dbo.Books
Create file konfigurasi dasar
Create file konfigurasi dasar menggunakan DAB CLI.
Create file konfigurasi umum menggunakan
dab init
.dab init --database-type "mssql" --host-mode "Development"
Tambahkan entitas Buku menggunakan
dab add
.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Amati file konfigurasi dab-config.json Anda saat ini. File harus menyertakan implementasi garis besar API Anda dengan satu entitas, titik akhir REST API, dan titik akhir GraphQL.
{ "$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.10.23/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "", "options": { "set-session-context": false } }, "runtime": { "rest": { "enabled": true, "path": "/api", "request-body-strict": true }, "graphql": { "enabled": true, "path": "/graphql", "allow-introspection": true }, "host": { "cors": { "origins": [], "allow-credentials": false }, "authentication": { "provider": "StaticWebApps" }, "mode": "development" } }, "entities": { "Book": { "source": { "object": "dbo.Books", "type": "table" }, "graphql": { "enabled": true, "type": { "singular": "Book", "plural": "Books" } }, "rest": { "enabled": true }, "permissions": [ { "role": "anonymous", "actions": [ { "action": "*" } ] } ] } } }
Create file variabel lingkungan
Sekarang, tambahkan file lingkungan untuk menyimpan variabel lingkungan untuk DAB.
- Create file bernama
.env
dalam direktori yang sama dengan file konfigurasi DAB CLI Anda.
Catatan
Nama .env
file, seperti .gitignore
dan .editorconfig
file tidak memiliki nama file, hanya ekstensi file. Nama ini tidak peka huruf besar/kecil tetapi konvensinya adalah huruf kecil.
DAB_ENVIRONMENT
Tambahkan variabel lingkungan dengan nilaiDevelopment
. Selain itu, tambahkanSQL_DOCKER_CONNECTION_STRING
variabel lingkungan dengan string koneksi database Anda.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Create file konfigurasi lingkungan
Terakhir, tambahkan file konfigurasi pengembangan dengan delta antara konfigurasi Anda saat ini dan konfigurasi lingkungan yang diinginkan.
Buat file
dab-config.Development.json
. Tambahkan konten berikut untuk menggunakan@env()
fungsi untuk mengatur nilai Andaconnection-string
di lingkungan pengembangan.{ "$schema": "<https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json>", "data-source": { "database-type": "mssql", "connection-string": "@env('SQL_DOCKER_CONNECTION_STRING')" } }
Simpan perubahan Anda ke .env, dab-config.json, dan dab-config. Development.json file.
Pengaturan pengujian
Gunakan
dab start
untuk memvalidasi alat dimulai seperti yang diharapkan.dab start
Output alat harus menyertakan alamat yang akan digunakan untuk menavigasi ke API yang sedang berjalan.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
Tip
Dalam contoh ini, aplikasi berjalan di
localhost
port 5000. Aplikasi Anda yang sedang berjalan mungkin memiliki alamat dan port yang berbeda.Pertama, coba API secara manual dengan mengeluarkan permintaan GET ke
/api/Book
.Tip
Dalam contoh ini, URL akan menjadi
https://localhost:5000/api/Book
. Anda dapat menavigasi ke URL ini menggunakan browser web Anda.Selanjutnya, navigasikan ke halaman dokumentasi Swagger di
/swagger
.Tip
Dalam contoh ini, URL akan menjadi
<https://localhost:5000/swagger
. Sekali lagi, Anda dapat menavigasi ke URL ini menggunakan browser web Anda.Terakhir, coba titik akhir GraphQL dengan menavigasi ke
/graphql
dan menjalankan operasi ini.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
Tip
Dalam contoh ini, URL akan menjadi
https://localhost:5000/graphql
. Sekali lagi, Anda dapat menavigasi ke URL ini menggunakan browser web Anda.