3.8 KiB
GraphQL
FastAPI, ASGI standardını temel aldığı için ASGI ile uyumlu herhangi bir GraphQL kütüphanesini entegre etmek oldukça kolaydır.
Aynı uygulama içinde normal FastAPI path operation'larını GraphQL ile birlikte kullanabilirsiniz.
/// tip | İpucu
GraphQL bazı çok özel kullanım senaryolarını çözer.
Yaygın web API'lerle karşılaştırıldığında avantajları ve dezavantajları vardır.
Kendi senaryonuz için faydaların, olumsuz yönleri telafi edip etmediğini mutlaka değerlendirin. 🤓
///
GraphQL Kütüphaneleri
Aşağıda ASGI desteği olan bazı GraphQL kütüphaneleri var. Bunları FastAPI ile kullanabilirsiniz:
- Strawberry 🍓
- Ariadne
- Tartiflette
- ASGI entegrasyonu sağlamak için Tartiflette ASGI ile
- Graphene
Strawberry ile GraphQL
GraphQL ile çalışmanız gerekiyorsa ya da bunu istiyorsanız, Strawberry önerilen kütüphanedir; çünkü tasarımı FastAPI'nin tasarımına en yakındır ve her şey type annotation'lar üzerine kuruludur.
Kullanım senaryonuza göre farklı bir kütüphaneyi tercih edebilirsiniz; ancak bana sorarsanız muhtemelen Strawberry'yi denemenizi önerirdim.
Strawberry'yi FastAPI ile nasıl entegre edebileceğinize dair küçük bir ön izleme:
{* ../../docs_src/graphql_/tutorial001_py39.py hl[3,22,25] *}
Strawberry hakkında daha fazlasını Strawberry dokümantasyonunda öğrenebilirsiniz.
Ayrıca FastAPI ile Strawberry dokümanlarına da göz atın.
Starlette'teki Eski GraphQLApp
Starlette'in önceki sürümlerinde Graphene ile entegrasyon için bir GraphQLApp sınıfı vardı.
Bu sınıf Starlette'te kullanımdan kaldırıldı (deprecated). Ancak bunu kullanan bir kodunuz varsa, aynı kullanım senaryosunu kapsayan ve neredeyse aynı bir interface sağlayan starlette-graphene3'e kolayca migrate edebilirsiniz.
/// tip | İpucu
GraphQL'e ihtiyacınız varsa, custom class ve type'lar yerine type annotation'lara dayandığı için yine de Strawberry'yi incelemenizi öneririm.
///
Daha Fazlasını Öğrenin
GraphQL hakkında daha fazlasını resmi GraphQL dokümantasyonunda öğrenebilirsiniz.
Ayrıca yukarıda bahsedilen kütüphanelerin her biri hakkında, kendi bağlantılarından daha fazla bilgi okuyabilirsiniz.