PHP के साथ GraphQL API: चरण-दर-चरण व्यावहारिक ट्यूटोरियल

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

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

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

PHP के साथ GraphQL का परिचय: यह क्यों आज़माना चाहिए

\n\n

GraphQL Facebook द्वारा विकसित API के लिए एक आधुनिक क्वेरी भाषा है। REST के विपरीत, जहां प्रत्येक एंडपॉइंट डेटा की एक निश्चित संरचना लौटाता है, GraphQL क्लाइंट को केवल उन फ़ील्ड को अनुरोध करने की अनुमति देता है जिनकी उसे आवश्यकता होती है। यह स्थानांतरित डेटा की मात्रा को कम करता है और जटिल अनुप्रयोगों के विकास को सरल बनाता है।

\n\n

इस ट्यूटोरियल में, हम webonyx/graphql-php लाइब्रेरी का उपयोग करके PHP में एक पूर्ण GraphQL API बनाएंगे। आप सीखेंगे कि स्कीमा कैसे परिभाषित करें, रिज़ॉल्वर कैसे लिखें, क्वेरी और म्यूटेशन को कैसे संसाधित करें, और GraphiQL के माध्यम से API का परीक्षण कैसे करें।

\n\n

यह माना जाता है कि आपके पास PHP 8.0+ और Composer स्थापित है। यदि नहीं, तो उन्हें स्थापित करके शुरू करें।

\n\n

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

\n\n

चरण 1: प्रोजेक्ट बनाना और निर्भरताएँ स्थापित करना

\n\n

प्रोजेक्ट के लिए एक नई निर्देशिका बनाएँ और Composer को आरंभ करें:

\n\n
mkdir graphql-php-tutorial\ncd graphql-php-tutorial\ncomposer init
\n\n

webonyx/graphql-php लाइब्रेरी स्थापित करें:

\n\n
composer require webonyx/graphql-php
\n\n

सरल रूटिंग के लिए nikic/fast-route भी स्थापित करें (वैकल्पिक, लेकिन सुविधाजनक):

\n\n
composer require nikic/fast-route
\n\n

चरण 2: प्रोजेक्ट संरचना

\n\n

निम्नलिखित फ़ोल्डर संरचना बनाएँ:

\n\n
graphql-php-tutorial/\n├── src/\n│   ├── Schema/\n│   │   └── schema.php\n│   ├── Resolvers/\n│   │   ├── QueryResolver.php\n│   │   └── MutationResolver.php\n│   └── Data/\n│       └── Database.php\n├── public/\n│   └── index.php\n├── vendor/\n└── composer.json
\n\n

GraphQL स्कीमा बनाना

\n\n

चरण 3: प्रकार और स्कीमा परिभाषित करना

\n\n

एक सरल डेटा मॉडल बनाते हैं: उपयोगकर्ता (User) और पोस्ट (Post)। src/Schema/schema.php खोलें और निम्नलिखित कोड जोड़ें:

\n\n
<?php\n\nnamespace App\\Schema;\n\nuse GraphQL\\Type\\Definition\\ObjectType;\nuse GraphQL\\Type\\Definition\\Type;\nuse GraphQL\\Type\\Schema as GraphQLSchema;\n\nclass Schema\n{\n    public static function build(): GraphQLSchema\n    {\n        // User प्रकार\n        $userType = new ObjectType([\n            'name' => 'User',\n            'fields' => [\n                'id' => Type::int(),\n                'name' => Type::string(),\n                'email' => Type::string(),\n                'posts' => [\n                    'type' => Type::listOf(function() use (&$postType) {\n                        return $postType;\n                    }),\n                    'resolve' => function($user) {\n                        return \\App\\Resolvers\\QueryResolver::getPostsByUser($user['id']);\n                    }\n                ]\n            ]\n        ]);\n\n        // Post प्रकार\n        $postType = new ObjectType([\n            'name' => 'Post',\n            'fields' => [\n                'id' => Type::int(),\n                'title' => Type::string(),\n                'content' => Type::string(),\n                'author' => [\n                    'type' => $userType,\n                    'resolve' => function($post) {\n                        return \\App\\Resolvers\\QueryResolver::getUserById($post['author_id']);\n                    }\n                ]\n            ]\n        ]);\n\n        // रूट Query प्रकार\n        $queryType = new ObjectType([\n            'name' => 'Query',\n            'fields' => [\n                'users' => [\n                    'type' => Type::listOf($userType),\n                    'resolve' => function() {\n                        return \\App\\Resolvers\\QueryResolver::getAllUsers();\n                    }\n                ],\n                'user' => [\n                    'type' => $userType,\n                    'args' => [\n                        'id' => Type::nonNull(Type::int())\n                    ]                

ब्लॉग

पुस्तक अनुशंसाएँ