fastapi/docs/tr/docs/how-to/graphql.md

3.8 KiB
Raw Blame History

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 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.