Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
GraphQL için Doku API'si, graphQL sorgularınızın ve mutasyonlarınızın canlı sonuçlarını oluşturmak, test etmek ve görmek için etkileşimli bir oyun alanı sağlayan grafiksel bir tarayıcı içi GraphQL geliştirme ortamı sağlar.
GraphQL düzenleyicisini kimler kullanır?
GraphQL düzenleyicisi aşağıdakiler için gereklidir:
- Uygulama geliştiricileri, uygulamalarda uygulamadan önce Fabric verilerine yönelik sorgularını prototipleyip test ederler.
- Lakehouse ile veri ambarı yapılarını keşfeden ve GraphQL şema tasarımlarını doğrulayan veri mühendisleri
- Fabric çalışma alanı katkıda bulunanları veri erişim izinlerini test etme ve sorgu sorunlarını giderme
- API yapısını öğrenen ve özel uygulamalar için veri erişim desenleri oluşturan BI geliştiricileri
- Geliştirme ekipleri, Fabric çalışma alanlarında sorgu geliştirme ve veri erişim sorunlarının giderilmesi konularında işbirliği yapmaktadır.
Doku veri kaynaklarınızda GraphQL sorgularını etkileşimli olarak geliştirmeniz, test etmeniz veya hatalarını ayıklamanız gerektiğinde düzenleyiciyi kullanın.
GraphQL düzenleyicisini kullanmaya başlama
GraphQL düzenleyicisini kullanmaya başlamak için şu adımları izleyin:
GraphQL API öğesini açma - Doku'da çalışma alanınıza gidin ve GraphQL için API öğesini açın.
Düzenleyiciye erişme - Portal ekranınızın sol alt köşesindeki Sorgu'yu seçin.
Sorgunuzu yazma - GraphQL sorgularınızı doğrudan Sorgu sekmesine yazın. Intellisense'i klavye kısayollarıyla kullanın:
- Windows: CTRL + Ara Çubuğu
- macOS: Command + Ara Çubuğu
Sorguyu yürütme - Sorguyu yürütmek ve veri kaynağınızdan veri almak için Çalıştır'ı seçin.
Kod oluşturma
API düzenleyicisi, düzenleyicide test etmekte olduğunuz GraphQL sorgusunu veya mutasyonu yansıtan ortak Python veya Node.js kodunu otomatik olarak oluşturur. Sorgularınızın prototipini oluşturup daralttıkça oluşturulan kod buna göre güncelleştirilir. Sonuçlardan memnun olduktan sonra, oluşturulan kodu görüntüleyebilir ve kopyalayarak test amacıyla yerel olarak çalıştırabilir veya uygulama geliştirme sürecinizde yeniden kullanabilirsiniz.
Önemli
Oluşturulan kod etkileşimli tarayıcı kimlik bilgilerini kullanır ve yalnızca test amacıyla kullanılmalıdır. Üretimde, bir uygulamayı her zaman Microsoft Entra'ya kaydedin ve uygun client_id ve kapsamları kullanın. Örnek kod içeren uçtan uca bir örneği Connect Applications adresinde bulabilirsiniz.
Başlamak için:
Sorgu yazma - Sorgu düzenleyicisine aşağıdaki örnek sorguyu (veya kendi sorgunuzu) girin:
query { addresses(first: 5) { items { AddressID City StateProvince CountryRegion } } }Sorguyu çalıştırma - Sorguyu yürütmek ve devam etmeden önce düzenleyicide düzgün çalıştığını doğrulamak için Çalıştır'ı seçin.
Kod oluşturma - Kod oluştur düğmesini seçin ve ardından tercih ettiğiniz programlama dilini (Python veya JavaScript/Node.JS) seçin:
Daha sonra oluşturulan kodu kopyalayıp yerel bir klasöre dosya olarak kaydedebilirsiniz. Seçilen dile bağlı olarak, yerel olarak test etmek için şu hızlı adımları izleyin:
Python
adlı
editor.pybir dosya oluşturun ve yukarıdaki örnek sorgudan oluşturulan kodu yapıştırın.komutunu
python -m venv .venvçalıştırarak bir sanal ortam oluşturun.venvveya.venv\Scripts\activatekomutunu çalıştıraraksource .venv/bin/activateetkinleştirin.komutunu çalıştırarak
pip install azure-identitygerekli bağımlılığı yükleyin.Kodu
python editor.pyile çalıştır.İsteğin kimliğini doğrulamak için bir tarayıcı penceresi aracılığıyla oturum açmanız istenir.
API'den gelen yanıt konsolda yazdırılır.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Node.JS
adlı
editor.jsbir dosya oluşturun ve yukarıdaki örnek sorgudan oluşturulan kodu yapıştırın.ile aynı klasörde
editor.jsaşağıdaki içeriklere sahip birpackage.jsondosya oluşturun:{ "type": "module", "dependencies": {} }Geliştirme makinenize Node.js yükleme (npm içerir)
Kimlik kitaplığının en son sürümünü yüklemek için seçtiğiniz paket yöneticisinde veya benzer bir komut çalıştırın
npm install @azure/identity.Kodu yürütmek için komutunu çalıştırın
node editor.js.İsteğin kimliğini doğrulamak için bir tarayıcı penceresi aracılığıyla oturum açmanız istenir.
API'den gelen yanıt konsolda yazdırılır.
{ "data": { "addresses": { "items": [ { "AddressID": 9, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 11, "City": "Bothell", "StateProvince": "Washington", "CountryRegion": "United States" }, { "AddressID": 25, "City": "Dallas", "StateProvince": "Texas", "CountryRegion": "United States" }, { "AddressID": 28, "City": "Phoenix", "StateProvince": "Arizona", "CountryRegion": "United States" }, { "AddressID": 32, "City": "Montreal", "StateProvince": "Quebec", "CountryRegion": "Canada" } ] } } }
Sorguların ve mutasyonların geliştirilmesi
Aşağıdaki örneklerde AdventureWorks örnek verileri kullanılarak GraphQL sorgusu ve mutasyon söz dizimi gösterilmektedir. Bu örneklerde yazma işlemlerini (mutasyonlar) destekleyen bir Doku Veri Ambarı ile çalıştığınız varsayılır. Veri kaynaklarına, SQL Analytics Uç Noktaları (Lakehouse'lar ve yansıtılmış veritabanları gibi) aracılığıyla erişildiğinde, bu kaynaklar salt okunurdur; yalnızca sorguları destekler, mutasyonları desteklemez.
AdventureWorks'ten bu kısa GraphQL şema alıntısı bölümünü gözden geçirin. Tüm CRUDL (oluşturma, okuma, güncelleştirme, silme, listeleme) kullanım örneklerini destekleyen, tek bir ürünü okumak veya tüm ürünleri listelemek için sorgular ve ürünleri oluşturmak, güncelleştirmek veya silmek için mutasyonlar içeren bir Product tür tanımlar.
{
type Product {
ProductID: Int!
Name: String!
ProductNumber: String!
Color: String
ListPrice: Float!
SellStartDate: DateTime!
}
type Query {
products(first: Int, filter: ProductFilterInput): ProductConnection
products_by_pk(ProductID: Int!): Product
}
type Mutation {
createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
deleteProduct(ProductID: Int!): Boolean
}
}
Şemada tanımlanan herhangi bir sorguyu kullanarak GraphQL aracılığıyla kullanıma sunulan verileri okuyun. Sorgu, products_by_pk birincil anahtarına göre tek bir ürünü getirir.
query MyQuery {
products_by_pk(ProductID: 680) {
ProductID
Name
ProductNumber
Color
ListPrice
}
}
Yanıt:
{
"data": {
"products_by_pk": {
"ProductID": 680,
"Name": "HL Road Frame - Black, 58",
"ProductNumber": "FR-R92B-58",
"Color": "Black",
"ListPrice": 1431.50
}
}
}
Veri yazmak ve gerekli parametrelerle yeni bir ürün oluşturmak için gibi createProduct mutasyonları kullanın.
mutation MyMutation {
createProduct(
Name: "Mountain Bike Helmet - Blue",
ProductNumber: "HE-M897-B",
ListPrice: 89.99,
SellStartDate: "2025-01-01T00:00:00Z"
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Yanıt:
{
"data": {
"createProduct": {
"ProductID": 1001,
"Name": "Mountain Bike Helmet - Blue",
"ProductNumber": "HE-M897-B",
"ListPrice": 89.99
}
}
}
Sorgu değişkenleri
Parametreleri sorgularınıza veya mutasyonlarınıza değişken olarak geçirmek için Sorgu sekmesinin sağ tarafındaki Sorgudeğişkenleri bölmesini kullanın. Değişkenler, diğer programlama dillerindeki değişkenler gibi çalışır. Her değişken, içinde depolanan değere erişmek için kullanılan bir adla bildirilir. Önceki mutasyon örneğini kullanarak sorgu değişkenlerini kullanmak için biraz değişiklik yapabilirsiniz.
mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
createProduct(
Name: $name,
ProductNumber: $productNumber,
ListPrice: $listPrice,
SellStartDate: $sellStartDate
) {
ProductID
Name
ProductNumber
ListPrice
}
}
Aşağıdaki örneği kullanarak Sorgu değişkenleri bölmesinde değişkenleri tanımlayın.
{
"name": "Mountain Bike Helmet - Blue",
"productNumber": "HE-M897-B",
"listPrice": 89.99,
"sellStartDate": "2025-01-01T00:00:00Z"
}
Değişkenler mutasyon kodunu daha temiz hale getirir, okunmasını, testini ve değiştirilmesini kolaylaştırır. Ayrıca değişkenleri değiştirerek aynı mutasyonu farklı değerlerle yeniden kullanmak da kolaylaşır.