Veri API'si oluşturucusu ile yapılandırma dosyası ortamlarını kullanma
Bu kılavuz, yapılandırma dosyası kullanarak geliştirme ortamını hedefleme adımlarını gösterir. Sonuç yapılandırma dosyaları, gelecekte çok az değişiklikle üretim veritabanı yapılandırması eklenebilecek kadar esnek olmalıdır.
- Mevcut SQL veritabanı.
- Veri yönetimi istemcisi
- Yüklü bir istemciniz yoksa Azure Data Studio'yu yükleyin
- Veri API'si oluşturucu CLI. CLI’yı yükleme
Bu örnek senaryoda kullanmak üzere kurgusal verilerle bir tablo İçerik Oluşturucu.
Tercih ettiğiniz istemciyi veya aracı kullanarak SQL sunucusuna ve veritabanına bağlanın. Örnekler şunlardır ancak bunlarla sınırlı değildir: SQL Server Management Studio, Azure Data Studio ve Visual Studio Code için SQL Server uzantısı.
ve
name
sütunlarıylaid
adlıBooks
bir tablo İçerik Oluşturucu.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
Tabloya
Books
dört örnek kitap satırı ekleyin.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
Basit
SELECT *
bir sorguyla verilerinizi test edin.SELECT * FROM dbo.Books
DAB CLI kullanarak bir temel yapılandırma dosyası İçerik Oluşturucu.
kullanarak
dab init
tipik bir yapılandırma dosyası İçerik Oluşturucu.dab init --database-type "mssql" --host-mode "Development"
kullanarak
dab add
bir Kitap varlığı ekleyin.dab add Book --source "dbo.Books" --permissions "anonymous:*"
Geçerli dab-config.json yapılandırma dosyanızı gözlemleyin. Dosya tek bir varlık, REST API uç noktası ve GraphQL uç noktası ile API'nizin temel uygulamasını içermelidir.
{ "$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": "*" } ] } ] } } }
Şimdi DAB için ortam değişkenlerini depolamak için bir ortam dosyası ekleyin.
- DAB CLI yapılandırma dosyalarınız ile aynı dizinde adlı
.env
bir dosya İçerik Oluşturucu.
Not
.env
gibi .gitignore
dosya adı ve .editorconfig
dosyalarının dosya adı yoktur, yalnızca bir dosya uzantısı vardır. Ad büyük/küçük harfe duyarlı değildir ancak kural küçük harftir.
değerine
Development
sahip birDAB_ENVIRONMENT
ortam değişkeni ekleyin. Ayrıca veritabanı bağlantı dizesi bir ortam değişkeni ekleyinSQL_DOCKER_CONNECTION_STRING
.SQL_DOCKER_CONNECTION_STRING=<connection-string> DAB_ENVIRONMENT=Development
Son olarak, geçerli yapılandırmanızla istenen ortam yapılandırması arasında delta ile bir geliştirme yapılandırma dosyası ekleyin.
Bir
dab-config.Development.json
dosyası oluşturun. Geliştirme ortamında değeriniziconnection-string
ayarlamak için işlevini kullanmak@env()
için aşağıdaki içeriği ekleyin.{ "$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')" } }
.env, dab-config.json ve dab-config değişikliklerinizi kaydedin. dosyaları Development.json.
Aracın beklendiği gibi başladığını doğrulamak için kullanın
dab start
.dab start
Aracın çıktısı, çalışan API'ye gitmek için kullanılacak adresi içermelidir.
Successfully completed runtime initialization. info: Microsoft.Hosting.Lifetime[14] Now listening on: <http://localhost:5000> info: Microsoft.Hosting.Lifetime[0]
İpucu
Bu örnekte uygulama 5000 numaralı bağlantı noktasında çalıştırılır
localhost
. Çalışan uygulamanızın farklı bir adresi ve bağlantı noktası olabilir.İlk olarak, öğesine bir GET isteği vererek API'yi
/api/Book
el ile deneyin.İpucu
Bu örnekte URL olacaktır
https://localhost:5000/api/Book
. Web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.Ardından konumundaki Swagger belgeleri sayfasına
/swagger
gidin.İpucu
Bu örnekte URL olacaktır
<https://localhost:5000/swagger
. Yine web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.Son olarak, bu işleme gidip
/graphql
çalıştırarak GraphQL uç noktasını deneyin.query { books(filter: { pages: { lt: 500 } }) { items { id title year pages } } }
İpucu
Bu örnekte URL olacaktır
https://localhost:5000/graphql
. Yine web tarayıcınızı kullanarak bu URL'ye gidebilirsiniz.