Graphene – Python में GraphQL: शुरुआती और उन्नत गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

GraphQL और Graphene का परिचय

GraphQL एक आधुनिक API क्वेरी भाषा और रनटाइम एनवायरनमेंट है, जिसे Facebook ने 2012 में पारंपरिक REST API की समस्याओं को हल करने के लिए विकसित किया था। Graphene एक शक्तिशाली Python लाइब्रेरी है जो टाइप की गई स्कीमा, म्यूटेशन और लोकप्रिय ORM सिस्टम के साथ इंटीग्रेशन के साथ GraphQL स्पेसिफिकेशन का पूर्ण कार्यान्वयन प्रदान करती है।

GraphQL क्या है और इसकी आवश्यकता क्यों है

GraphQL डेटा प्राप्त करने का एक डिक्लेरेटिव तरीका है, जहां क्लाइंट सटीक रूप से बताता है कि उसे कौन सा डेटा चाहिए। REST के विपरीत, जहां सर्वर रिस्पॉन्स की संरचना तय करता है, GraphQL क्लाइंट को स्वयं क्वेरी बनाने और केवल आवश्यक डेटा प्राप्त करने की अनुमति देता है।

REST की तुलना में GraphQL के मुख्य लाभ

एकल एंट्री पॉइंट

GraphQL सभी ऑपरेशनों के लिए एक ही URL एंडपॉइंट का उपयोग करता है, जो API आर्किटेक्चर को सरल बनाता है और URL के माध्यम से वर्जनिंग की आवश्यकता को समाप्त करता है।

क्वेरी में लचीलापन

क्लाइंट स्वयं रिस्पॉन्स की संरचना तय करता है, केवल आवश्यक फील्ड और संबंधित डेटा का अनुरोध करता है।

डेटा रिडंडेंसी का उन्मूलन

over-fetching (अनावश्यक डेटा प्राप्त करना) और under-fetching (अपर्याप्त डेटा) की समस्याएं क्वेरी स्तर पर हल हो जाती हैं।

संबंधित डेटा का संयोजन

एक ही क्वेरी में कई संबंधित संस्थाओं से डेटा प्राप्त करने की क्षमता, जो सर्वर कॉल की संख्या को कम करती है।

सख्त टाइपिंग

GraphQL स्कीमा स्टैटिकली टाइप की जाती है, जो क्वेरी वैलिडेशन और IDE में ऑटो-कम्प्लीशन सुनिश्चित करती है।

स्वचालित दस्तावेज़ीकरण

स्कीमा इंट्रोस्पेक्शन के माध्यम से उपलब्ध API की लाइव डॉक्यूमेंटेशन के रूप में कार्य करती है।

Graphene की स्थापना और कॉन्फ़िगरेशन

बेसिक इंस्टॉलेशन

pip install graphene

वेब फ्रेमवर्क के साथ इंटीग्रेशन

Flask के लिए:

pip install flask-graphql

Django के लिए:

pip install graphene-django

FastAPI के लिए:

pip install starlette-graphene3

डेटाबेस के साथ इंटीग्रेशन

SQLAlchemy के लिए:

pip install graphene-sqlalchemy

Django ORM के लिए:

pip install graphene-django

बेसिक GraphQL सर्वर बनाना

Flask के साथ उदाहरण

from flask import Flask
from flask_graphql import GraphQLView
import graphene

app = Flask(__name__)

class Query(graphene.ObjectType):
    hello = graphene.String(name=graphene.String(default_value="दुनिया"))
    
    def resolve_hello(self, info, name):
        return f"नमस्ते, {name}!"

schema = graphene.Schema(query=Query)

app.add_url_rule('/graphql', view_func=GraphQLView.as_view(
    'graphql', 
    schema=schema, 
    graphiql=True  # GraphiQL इंटरफ़ेस चालू करता है
))

if __name__ == '__main__':
    app.run(debug=True)

Django के साथ उदाहरण

# settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'graphene_django',
    'myapp',
]

GRAPHENE = {
    'SCHEMA': 'myproject.schema.schema'
}

# urls.py
from django.urls import path
from graphene_django.views import GraphQLView

urlpatterns = [
    path('graphql/', GraphQLView.as_view(graphiql=True)),
]

Graphene में टाइप और स्कीमा को परिभाषित करना

कस्टम टाइप बनाना

import graphene

class User(graphene.ObjectType):
    id = graphene.ID()
    name = graphene.String()
    email = graphene.String()
    age = graphene.Int()
    is_active = graphene.Boolean()
    
    # कम्प्यूटेड फील्ड
    full_name = graphene.String()
    
    def resolve_full_name(self, info):
        return f"{self.first_name} {self.last_name}"

class Post(g                    

अनुशंसाएँ