विषय पर बढ़ें

GraphQL

🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद

यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝

इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖

आप हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके इस अनुवाद को बेहतर बना सकते हैं।

अंग्रेज़ी संस्करण

क्योंकि FastAPI ASGI standard पर आधारित है, इसलिए ASGI के साथ compatible किसी भी GraphQL library को integrate करना बहुत आसान है।

आप उसी application में सामान्य FastAPI path operations को GraphQL के साथ combine कर सकते हैं।

सुझाव

GraphQL कुछ बहुत specific use cases को solve करता है।

Common web APIs की तुलना में इसके advantages और disadvantages हैं।

सुनिश्चित करें कि आप evaluate करें कि आपके use case के लिए benefits, drawbacks की भरपाई करते हैं या नहीं। 🤓

GraphQL Libraries

यहाँ कुछ GraphQL libraries हैं जिनमें ASGI support है। आप उन्हें FastAPI के साथ उपयोग कर सकते हैं:

Strawberry के साथ GraphQL

यदि आपको GraphQL के साथ काम करने की ज़रूरत है या आप करना चाहते हैं, तो Strawberry recommended library है क्योंकि इसका design FastAPI के design के सबसे करीब है, यह पूरी तरह type annotations पर आधारित है।

आपके use case के आधार पर, आप कोई अलग library उपयोग करना पसंद कर सकते हैं, लेकिन अगर आप मुझसे पूछें, तो मैं शायद सुझाव दूँगा कि आप Strawberry आज़माएँ।

यहाँ एक छोटा preview है कि आप Strawberry को FastAPI के साथ कैसे integrate कर सकते हैं:

import strawberry
from fastapi import FastAPI
from strawberry.fastapi import GraphQLRouter


@strawberry.type
class User:
    name: str
    age: int


@strawberry.type
class Query:
    @strawberry.field
    def user(self) -> User:
        return User(name="Patrick", age=100)


schema = strawberry.Schema(query=Query)


graphql_app = GraphQLRouter(schema)

app = FastAPI()
app.include_router(graphql_app, prefix="/graphql")

आप Strawberry documentation में Strawberry के बारे में और जान सकते हैं।

और FastAPI के साथ Strawberry के बारे में docs भी।

Starlette से पुराना GraphQLApp

Starlette के पिछले versions में Graphene के साथ integrate करने के लिए एक GraphQLApp class शामिल थी।

इसे Starlette से deprecated कर दिया गया था, लेकिन यदि आपके पास ऐसा code है जो इसका उपयोग करता था, तो आप आसानी से starlette-graphene3 पर migrate कर सकते हैं, जो वही use case cover करता है और जिसका लगभग identical interface है।

सुझाव

यदि आपको GraphQL की ज़रूरत है, तो मैं फिर भी recommend करूँगा कि आप Strawberry देखें, क्योंकि यह custom classes और types की बजाय type annotations पर आधारित है।

और जानें

आप official GraphQL documentation में GraphQL के बारे में और जान सकते हैं।

आप ऊपर वर्णित उन libraries में से प्रत्येक के बारे में उनके links में और भी पढ़ सकते हैं।