# GraphQL { #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 { #graphql-libraries }
Aşağıda **ASGI** desteği olan bazı **GraphQL** kütüphaneleri var. Bunları **FastAPI** ile kullanabilirsiniz:
* Strawberry 🍓
* FastAPI dokümantasyonu ile
* Ariadne
* FastAPI dokümantasyonu ile
* Tartiflette
* ASGI entegrasyonu sağlamak için Tartiflette ASGI ile
* Graphene
* starlette-graphene3 ile
## Strawberry ile GraphQL { #graphql-with-strawberry }
**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` { #older-graphqlapp-from-starlette }
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 { #learn-more }
**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.