How to Implement GraphQL in Laravel – Hindi Tutorial

How to Implement GraphQL in Laravel – Hindi Tutorial

यदि आप REST API से परेशान हैं और अपने क्लाइंट को लचीला व सटीक डेटा देना चाहते हैं, तो GraphQL आपके लिए एक शानदार विकल्प है। लारवेल में Lighthouse जैसे टूल्स के साथ GraphQL API बनाना बहुत आसान है। इस लारवेल GraphQL ट्यूटोरियल हिंदी में में, हम आपको आसान चरणों में बताएंगे कि लारवेल में GraphQL API कैसे बनाते हैं, जिसमें क्वेरीज़, म्यूटेशन्स, और ऑथेंटिकेशन शामिल होंगे। यह ट्यूटोरियल नए डेवलपर्स के लि

Table of contents [Show]

परिचय: लारवेल में GraphQL क्यों लागू करें?

यदि आप REST API से परेशान हैं और अपने क्लाइंट को लचीला व सटीक डेटा देना चाहते हैं, तो GraphQL आपके लिए एक शानदार विकल्प है। लारवेल में Lighthouse जैसे टूल्स के साथ GraphQL API बनाना बहुत आसान है। इस लारवेल GraphQL ट्यूटोरियल हिंदी में में, हम आपको आसान चरणों में बताएंगे कि लारवेल में GraphQL API कैसे बनाते हैं, जिसमें क्वेरीज़, म्यूटेशन्स, और ऑथेंटिकेशन शामिल होंगे। यह ट्यूटोरियल नए डेवलपर्स के लिए बहुत अच्छा है। तैयार हैं? चलिए शुरू करते हैं! 🚀

 

लारवेल GraphQL के फायदे

GraphQL इतना लोकप्रिय क्यों है? आइए इसके कुछ मुख्य फायदों को समझें:

  • लचीलापन: क्लाइंट को केवल वही डेटा मिलता है, जो उसे चाहिए।
  • एकल एंडपॉइंट: REST जैसे कई एंडपॉइंट्स की जरूरत नहीं।
  • आसान एकीकरण: Lighthouse के साथ लारवेल में आसानी से सेटअप हो जाता है।
  • रियल-टाइम डेटा: सब्सक्रिप्शन्स के जरिए तुरंत अपडेट्स मिलते हैं।
  • कम्युनिटी सहायता: GraphQL और लारवेल की वैश्विक कम्युनिटी से बहुत सारी गाइड्स उपलब्ध हैं।

जानकारी: 2025 में 30% डेवलपर्स मानते हैं कि GraphQL REST का भविष्य है!

GraphQL से क्या बना सकते हैं?

लारवेल और GraphQL के साथ आप कई तरह के प्रोजेक्ट्स बना सकते हैं, जैसे:

  • मोबाइल ऐप बैकएंड: डायनामिक डेटा प्रदान करने के लिए।
  • वेब ऐप्स: सिंगल पेज ऐप्स (SPA) के लिए API।
  • डैशबोर्ड्स: रियल-टाइम डेटा दिखाने के लिए।
  • थर्ड-पार्टी एकीकरण: लचीला डेटा शेयरिंग।

लारवेल में GraphQL लागू करने की आसान गाइड

चरण 1: लारवेल प्रोजेक्ट सेटअप करें

सबसे पहले, एक नया लारवेल प्रोजेक्ट बनाएं। इसके लिए आपको चाहिए:

  • PHP: संस्करण 8.1 या उससे ऊपर।
  • कंपोजर: PHP पैकेज मैनेजर।
  • डेटाबेस: MySQL।

सेटअप कैसे करें?

  1. टर्मिनल में यह कमांड चलाएं:
composer create-project laravel/laravel graphql-app

इससे “graphql-app” नाम का फोल्डर बनेगा।

  1. फोल्डर में जाएं और सर्वर शुरू करें:
cd graphql-app
php artisan serve

ब्राउज़र में http://localhost:8000 खोलें, आपको लारवेल का स्वागत पेज दिखेगा।

 

चरण 2: डेटाबेस कॉन्फिगर करें

GraphQL API के लिए डेटा (जैसे पोस्ट्स) स्टोर करने के लिए डेटाबेस चाहिए।

  1. .env फाइल में डेटाबेस जानकारी डालें:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=graphql_db
DB_USERNAME=your_username
DB_PASSWORD=your_password
  1. MySQL में graphql_db नाम का डेटाबेस बनाएं।
  2. पोस्ट्स के लिए मॉडल और माइग्रेशन बनाएं:
php artisan make:model Post -m
  1. database/migrations/ में माइग्रेशन फाइल में निम्नलिखित कोड डालें:
Schema::create('posts', function (Blueprint $table) {
    $table->id();
    $table->string('title');
    $table->text('content');
    $table->unsignedBigInteger('user_id');
    $table->timestamps();
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
  1. माइग्रेशन चलाएं:
php artisan migrate
  1. app/Models/Post.php में मॉडल अपडेट करें:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
    protected $fillable = ['title', 'content', 'user_id'];
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}
  1. app/Models/User.php में रिलेशन जोड़ें:
public function posts()
{
    return $this->hasMany(Post::class);
}

चरण 3: Lighthouse इंस्टॉल करें

Lighthouse लारवेल में GraphQL लागू करने का सबसे अच्छा पैकेज है।

  1. टर्मिनल में यह कमांड चलाएं:
composer require nuwave/lighthouse
  1. Lighthouse कॉन्फिग पब्लिश करें:
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=config

चरण 4: GraphQL स्कीमा डिफाइन करें

GraphQL स्कीमा में क्वेरीज़ और म्यूटेशन्स को परिभाषित करें।

  1. graphql/schema.graphql फाइल में निम्नलिखित कोड डालें:
type Query {
    posts: [Post!]! @all
    post(id: ID!): Post @find
}
type Mutation {
    createPost(title: String!, content: String!, user_id: ID!): Post! @create
    updatePost(id: ID!, title: String, content: String): Post! @update
    deletePost(id: ID!): Post! @delete
}
type Post {
    id: ID!
    title: String!
    content: String!
    user: User! @belongsTo
    created_at: DateTime!
    updated_at: DateTime!
}
type User {
    id: ID!
    name: String!
    email: String!
    posts: [Post!]! @hasMany
}

यह स्कीमा पोस्ट्स को बनाने, प्राप्त करने, अपडेट करने, और हटाने की क्वेरीज़ और म्यूटेशन्स को परिभाषित करता है।

चरण 5: ऑथेंटिकेशन सेटअप करें

GraphQL API को सुरक्षित करने के लिए Laravel Sanctum का उपयोग करें।

  1. Sanctum इंस्टॉल करें:
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
  1. app/Models/User.php में Sanctum ट्रेट जोड़ें:
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
    use HasApiTokens;
    protected $fillable = ['name', 'email', 'password'];
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}
  1. config/lighthouse.php में ऑथ गार्ड कॉन्फिगर करें:
'guard' => 'sanctum',
  1. ऑथ म्यूटेशन्स जोड़ें। graphql/schema.graphql में यह जोड़ें:
type Mutation {
    login(email: String!, password: String!): AuthPayload! @field(resolver: "App\\GraphQL\\Mutations\\Login")
    register(name: String!, email: String!, password: String!): AuthPayload! @field(resolver: "App\\GraphQL\\Mutations\\Register")
}
type AuthPayload {
    token: String!
    user: User!
}

चरण 6: ऑथ म्यूटेशन्स बनाएं

लॉगिन और रजिस्टर म्यूटेशन्स बनाएं।

  1. app/GraphQL/Mutations/Login.php बनाएं और निम्नलिखित कोड डालें:
namespace App\GraphQL\Mutations;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
class Login
{
    public function __invoke($_, array $args)
    {
        $user = User::where('email', $args['email'])->first();
        if (!$user || !Hash::check($args['password'], $user->password)) {
            throw new \Exception('Invalid credentials');
        }
        $token = $user->createToken('graphql')->plainTextToken;
        return ['token' => $token, 'user' => $user];
    }
}
  1. app/GraphQL/Mutations/Register.php बनाएं और निम्नलिखित कोड डालें:
namespace App\GraphQL\Mutations;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
class Register
{
    public function __invoke($_, array $args)
    {
        $user = User::create([
            'name' => $args['name'],
            'email' => $args['email'],
            'password' => Hash::make($args['password']),
        ]);
        $token = $user->createToken('graphql')->plainTextToken;
        return ['token' => $token, 'user' => $user];
    }
}

चरण 7: GraphQL API टेस्ट करें

GraphQL एंडपॉइंट्स को टेस्ट करने के लिए GraphiQL या Postman का उपयोग करें।

  1. GraphiQL इंस्टॉल करें:
php artisan vendor:publish --provider="Nuwave\Lighthouse\LighthouseServiceProvider" --tag=graphiql
  1. ब्राउज़र में http://localhost:8000/graphiql खोलें।
  2. रजिस्टर म्यूटेशन टेस्ट करें:
mutation {
    register(name: "Test User", email: "test@example.com", password: "password") {
        token
        user {
            id
            name
        }
    }
}
  1. लॉगिन म्यूटेशन टेस्ट करें:
mutation {
    login(email: "test@example.com", password: "password") {
        token
        user {
            id
            name
        }
    }
}
  1. पोस्ट्स क्वेरी टेस्ट करें (टोकन के साथ):
query {
    posts {
        id
        title
        content
        user {
            name
        }
    }
}

हेडर्स में टोकन डालें: Authorization: Bearer your_token_here

  1. पोस्ट क्रिएट म्यूटेशन टेस्ट करें:
mutation {
    createPost(title: "Test Post", content: "This is a test post", user_id: 1) {
        id
        title
        content
    }
}

 

चरण 8: ऑथेंटिकेशन मिडलवेयर जोड़ें

कुछ क्वेरीज़ को सुरक्षित करें।

  1. graphql/schema.graphql में ऑथ डायरेक्टिव जोड़ें:
type Query {
    posts: [Post!]! @all @middleware(checks: ["auth:sanctum"])
    post(id: ID!): Post @find @middleware(checks: ["auth:sanctum"])
}

चरण 9: होस्टिंग

GraphQL API को ऑनलाइन ले जाएं।

  1. होस्टिंग चुनें: Hostinger सस्ता और नए डेवलपर्स के लिए उपयुक्त है।
  2. प्रोजेक्ट फाइल्स और डेटाबेस को सर्वर पर अपलोड करें।
  3. .env फाइल कॉन्फिगर करें।

 

लारवेल GraphQL टिप्स

  • स्कीमा डिज़ाइन: स्कीमा को साफ और मॉड्यूलर रखें।
  • सुरक्षा: Sanctum या JWT से API को सुरक्षित करें।
  • टेस्टिंग: GraphiQL या Postman से क्वेरीज़ टेस्ट करें।
  • डॉक्यूमेंटेशन: Lighthouse Docs और GraphQL Docs पढ़ें।

अक्सर पूछे जाने वाले सवाल

1. लारवेल में GraphQL क्यों लागू करें?

GraphQL लचीला और एकल-एंडपॉइंट डेटा प्रदान करता है।

2. क्या GraphQL नए डेवलपर्स के लिए आसान है?

हां, इस लारवेल GraphQL ट्यूटोरियल हिंदी में गाइड के साथ नए डेवलपर्स आसानी से सीख सकते हैं।

3. GraphQL API बनाने में कितना समय लगता है?

इस गाइड के साथ 1-2 दिन। जटिल APIs के लिए 1 सप्ताह।

4. क्या मैं REST के साथ GraphQL यूज़ कर सकता हूँ?

हां, दोनों को एक साथ हाइब्रिड तरीके से यूज़ किया जा सकता है।

5. GraphQL API को ऑनलाइन कैसे लाएँ?

Hostinger पर अपने प्रोजेक्ट को अपलोड करें।

निष्कर्ष: आज ही GraphQL शुरू करें!

इस लारवेल GraphQL ट्यूटोरियल हिंदी में के माध्यम से आपने सीखा कि लारवेल में Lighthouse से GraphQL API कैसे बनाते हैं। इस गाइड को फॉलो करें और अपने प्रोजेक्ट्स में लचीली APIs जोड़ें। कोई सवाल हो? नीचे कमेंट करें। अपनी वेबसाइट को Hostinger पर होस्ट करें और इसे ऑनलाइन ले जाएं।

आगे क्या सीखें? Laravel Livewire, Multi-Tenancy, या Docker पर ट्यूटोरियल्स हिंदी में चाहिए? InHindi24.com पर और गाइड्स पढ़ें!

Munna Patel

हाय, मैं एक फुल स्टैक डेवलपर (Full Stack Developer) हूँ, जिसके पास 7 साल का अनुभव (7 Years of Experience) है। मेरा जुनून है वेब डेवलपमेंट (Web Development) और कोडिंग (Coding) को आसान (Easy) और मजेदार बनाना, खासकर हिंदी भाषी ऑडियंस के लिए। मैं InHindi24.com पर हिंदी में टेक ट्यूटोरियल्स (Tech Tutorials in Hindi) शेयर करता हूँ, जिसमें लारवेल (Laravel), HTML, CSS, JavaScript, Python, और बहुत कुछ