GraphQL¶
🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri
Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝
Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖
Yapay zekâ LLM'ini daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.
FastAPI,ASGI standardını temel aldığı için ASGI ile uyumlu herhangi birGraphQL kütüphanesini entegre etmek oldukça kolaydır.
Aynı uygulama içinde normal FastAPIpath operation'larını GraphQL ile birlikte kullanabilirsiniz.
İpucu
GraphQL bazı çok özel kullanım senaryolarını çözer.
Yaygınweb API'lerle karşılaştırıldığındaavantajları vedezavantajları vardır.
Kendi senaryonuz içinfaydaların,olumsuz yönleri telafi edip etmediğini mutlaka değerlendirin. 🤓
GraphQL Kütüphaneleri¶
AşağıdaASGI desteği olan bazıGraphQL kütüphaneleri var. BunlarıFastAPI ile kullanabilirsiniz:
- Strawberry 🍓
- Ariadne
- Tartiflette
- ASGI entegrasyonu sağlamak içinTartiflette 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 şeytype annotation'lar üzerine kuruludur.
Kullanım senaryonuza göre farklı bir kütüphaneyi tercih edebilirsiniz; ancak bana sorarsanız muhtemelenStrawberry'yi denemenizi önerirdim.
Strawberry'yi FastAPI ile nasıl entegre edebileceğinize dair küçük bir ön izleme:
importstrawberryfromfastapiimportFastAPIfromstrawberry.fastapiimportGraphQLRouter@strawberry.typeclassUser:name:strage:int@strawberry.typeclassQuery:@strawberry.fielddefuser(self)->User:returnUser(name="Patrick",age=100)schema=strawberry.Schema(query=Query)graphql_app=GraphQLRouter(schema)app=FastAPI()app.include_router(graphql_app,prefix="/graphql")Strawberry hakkında daha fazlasınıStrawberry dokümantasyonunda öğrenebilirsiniz.
AyrıcaFastAPI ile Strawberry dokümanlarına da göz atın.
Starlette'teki EskiGraphQLApp¶
Starlette'in önceki sürümlerindeGraphene ile entegrasyon için birGraphQLApp 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 veneredeyse aynı bir interface sağlayanstarlette-graphene3'e kolaycamigrate edebilirsiniz.
İpucu
GraphQL'e ihtiyacınız varsa, custom class ve type'lar yerine type annotation'lara dayandığı için yine deStrawberry'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.







