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.
UYGULANANLAR: Tüm API Management katmanları
API Management'ı kullanarak GraphQL sorgu dilini temel alan API'ler olan GraphQL API'lerini yönetebilirsiniz. GraphQL, bir API'deki verilerin eksiksiz ve anlaşılır bir açıklamasını sağlayarak istemcilere tam olarak ihtiyaç duydukları verileri verimli bir şekilde alma gücü sağlar. GraphQL hakkında daha fazla bilgi edinin.
API Management, GraphQL API'lerini içeri aktarmanıza, yönetmenize, korumanıza, test edip yayımlamanıza ve izlemenize yardımcı olur. İki API modelinden birini seçebilirsiniz:
| Geçişli GraphQL | Sentetik GraphQL |
|---|---|
| ▪️ Mevcut GraphQL hizmet uç noktasına geçiş API'si ▪️ GraphQL sorguları, mutasyonlar ve abonelikler için destek |
▪️ Özel GraphQL şemasını temel alan API ▪️ GraphQL sorguları, mutasyonlar ve abonelikler için destek ▪️ Http veri kaynakları gibi özel çözümleyicileri yapılandırma ▪️ Eski API'lerden veri kullanırken GraphQL şemaları ve GraphQL tabanlı istemciler geliştirme ▪️ Yapay abonelikler çözümleyici gerektirmez. Bkz. olay yayımlama ilkesi. |
Kullanılabilirlik
- GraphQL API'leri tüm API Management hizmet katmanlarında desteklenir.
- Yapay GraphQL API'leri şu anda API Management çalışma alanlarında desteklenmemektedir.
- Yapay GraphQL API'lerindeki GraphQL abonelikleri desteği şu anda önizleme aşamasındadır ve Tüketim katmanında kullanılamaz.
GraphQL nedir?
GraphQL, API'ler için açık kaynak, endüstri standardı bir sorgu dilidir. Kaynaklar üzerinde eylemler etrafında tasarlanan REST stili API'lerin aksine GraphQL API'leri daha geniş bir kullanım örnekleri kümesini destekler ve veri türlerine, şemalara ve sorgulara odaklanır.
GraphQL belirtimi REST API'lerini kullanan istemci web uygulamaları tarafından karşılaşılan yaygın sorunları açıkça çözer:
- Tek bir sayfa için veri gereksinimlerini karşılamak çok sayıda istek alabilir.
- REST API'leri genellikle işlenen sayfanın gerektirdiğinden daha fazla veri döndürür.
- Yeni bilgi almak için istemci uygulaması yoklamalıdır.
bir GraphQL API'sini kullanarak istemci uygulaması, bir GraphQL hizmetine tek istek olarak gönderilen bir sorgu belgesindeki bir sayfayı işlemek için gereken verileri belirtebilir. İstemci uygulaması, GraphQL hizmetinden gerçek zamanlı olarak gönderilen veri güncelleştirmelerine de abone olabilir.
Şema ve türler
API Management'ta, bir GraphQL şemasından, arka uç GraphQL API'sinden alınan veya tarafınızdan yüklenen bir GraphQL API ekleyin. GraphQL şemasında şu ifadeler açıklanmaktadır:
- İstemcilerin GraphQL API'sinden isteyebileceği veri nesnesi türleri ve alanları.
- Sorgular gibi verilerde izin verilen işlem türleri.
- Birleşimler ve arabirimler gibi veriler üzerinde ek esneklik ve denetim sağlayan diğer türler.
Örneğin, kullanıcı verileri için temel bir GraphQL şeması ve tüm kullanıcılar için bir sorgu aşağıdaki gibi görünebilir:
type Query {
users: [User]
}
type User {
id: String!
name: String!
}
İşlem türleri
API Management, GraphQL şemalarında aşağıdaki işlem türlerini destekler. Bu işlem türleri hakkında daha fazla bilgi için bkz . GraphQL belirtimi.
Sorgu: REST'teki bir işleme benzer şekilde
GETverileri getirir.Mutasyon: REST'teki veya
PUTPATCHişlemine benzer şekilde sunucu tarafı verilerini değiştirir.Abonelik: GraphQL hizmetindeki verilerde yapılan değişiklikler hakkında abone olan istemcileri gerçek zamanlı olarak bilgilendirmeyi etkinleştirir.
Örneğin, veriler GraphQL mutasyonuyla değiştirildiğinde, abone olunan istemcilere değişiklik hakkında otomatik olarak bildirim gönderilebilir.
Önemli
API Management, graphql-ws WebSocket protokolü kullanılarak uygulanan abonelikleri destekler. Sorgular ve mutasyonlar WebSocket üzerinden desteklenmez.
Diğer türler
API Management, GraphQL şemalarındaki birleşim ve arabirim türlerini destekler.
Çözümleyiciler
Çözümleyiciler , GraphQL şemasını arka uç verilerine eşler ve bir nesne türündeki her alan için veri üretir. Veri kaynağı bir API, veritabanı veya başka bir hizmet olabilir. Örneğin, bir çözümleyici işlevi önceki örnekteki sorgu için users veri döndürmekten sorumlu olacaktır.
API Management'ta, nesne türündeki bir alanı arka uç veri kaynağına eşlemek için bir çözümleyici oluşturabilirsiniz. Yapay GraphQL API şemalarındaki alanlar için çözümleyicileri yapılandırabilir, ancak bunları aktarımı sağlayan GraphQL API'leri tarafından kullanılan varsayılan alan çözümleyicilerini geçersiz kılacak şekilde de yapılandırabilirsiniz.
API Management şu anda BIR GraphQL şemasındaki alanların verilerini döndürmek için HTTP API, Cosmos DB ve Azure SQL veri kaynaklarını temel alan çözümleyicileri desteklemektedir. Her çözümleyici, veri kaynağına bağlanmak ve verileri almak için uyarlanmış bir ilke kullanılarak yapılandırılır:
| Veri kaynağı | Çözümleme politikası |
|---|---|
| HTTP tabanlı veri kaynağı (REST veya SOAP API) | http-veri-kaynağı |
| Cosmos DB veritabanı | cosmosdb-data-source |
| Azure SQL veritabanı | SQL veri kaynağı |
Örneğin, önceki users sorgu için HTTP API tabanlı çözümleyici arka uç REST API'sindeki bir GET işlemle eşlenebilir:
<http-data-source>
<http-request>
<set-method>GET</set-method>
<set-url>https://myapi.contoso.com/api/users</set-url>
</http-request>
</http-data-source>
Çözümleyici ayarlama hakkında daha fazla bilgi için bkz . GraphQL çözümleyicisini yapılandırma.
GraphQL API'lerini yönetme
- GraphQL'e özgü saldırıların güvenliğini sağlamak ve bu saldırılara karşı koruma sağlamak için hem mevcut erişim denetimi ilkelerini hem de GraphQL doğrulama ilkesini uygulayarak GraphQL API'lerinin güvenliğini sağlayın.
- GraphQL şemasını keşfedin ve Azure ve geliştirici portallarındaki GraphQL API'lerine karşı test sorguları çalıştırın.