PHP में GraphQL: webonyx/graphql-php लाइब्रेरी के लिए संपूर्ण गाइड

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

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

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

PHP GraphQL लाइब्रेरी: webonyx/graphql-php



GraphQL Facebook द्वारा विकसित API के लिए एक आधुनिक क्वेरी भाषा है। PHP में GraphQL को लागू करने के लिए सबसे लोकप्रिय और परिपक्व लाइब्रेरी में से एक webonyx/graphql-php है। यह लाइब्रेरी डेवलपर्स को लचीले, टाइप किए गए और कुशल API बनाने की अनुमति देती है, जो क्लाइंट को केवल आवश्यक डेटा का अनुरोध करने की क्षमता देते हैं।



इस लेख में, हम विस्तार से देखेंगे कि आपके PHP प्रोजेक्ट पर webonyx/graphql-php को कैसे स्थापित, कॉन्फ़िगर और उपयोग करें। यह लाइब्रेरी GraphQL के आधिकारिक विनिर्देश (जून 2018) को पूरी तरह से लागू करती है और सभी आधुनिक सुविधाओं का समर्थन करती है: क्वेरी (queries), म्यूटेशन (mutations), सब्सक्रिप्शन (subscriptions), इंटरफ़ेस, यूनियन और बहुत कुछ।



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



स्थापना Composer के माध्यम से की जाती है। अपने प्रोजेक्ट की रूट डायरेक्टरी में टर्मिनल खोलें और निम्नलिखित चलाएँ:



composer require webonyx/graphql-php


स्थापना के बाद, लाइब्रेरी उपयोग के लिए तैयार है। न्यूनतम कॉन्फ़िगरेशन की आवश्यकता नहीं है - बस अपनी PHP फ़ाइल में आवश्यक क्लासेस को इम्पोर्ट करें।



लाइब्रेरी के मुख्य घटक



लाइब्रेरी में कई प्रमुख घटक होते हैं जो एक दूसरे के साथ इंटरैक्ट करते हैं:



  • स्कीमा (Schema) - डेटा प्रकार और उपलब्ध संचालन (क्वेरी और म्यूटेशन) को परिभाषित करता है।
  • प्रकार (Types) - डेटा संरचना का वर्णन करते हैं (ObjectType, ScalarType, EnumType, InterfaceType, UnionType, आदि)।
  • रिज़ॉल्वर (Resolvers) - फ़ंक्शन जो प्रत्येक फ़ील्ड के लिए डेटा लौटाते हैं।
  • निष्पादक (Executor) - इनकमिंग अनुरोध को संसाधित करता है और परिणाम लौटाता है।


एक सरल स्कीमा बनाना



उपयोगकर्ताओं के साथ काम करने के लिए एक सरल GraphQL स्कीमा बनाने का उदाहरण देखें। पहले User प्रकार को परिभाषित करें:



<?phpuse GraphQL\\Type\\Definition\\ObjectType;use GraphQL\\Type\\Definition\\Type;

$userType = new ObjectType([ 'name' => 'User', 'fields' => [ 'id' => Type::int(), 'name' => Type::string(), 'email' => Type::string(), 'age' => Type::int(), ],]);


अब एक रूट क्वेरी प्रकार Query बनाएँ, जो उपयोगकर्ताओं की सूची लौटाएगा:



$queryType = new ObjectType([    'name' => 'Query',    'fields' => [        'users' => [            'type' => Type::listOf($userType),            'resolve' => function ($root, $args) {                // यहाँ आमतौर पर डेटाबेस क्वेरी होती है                return [                    ['id' => 1, 'name' => 'इवान इवानोव', 'email' => 'ivan@example.com', 'age' => 30],                    ['id' => 2, 'name' => 'मारिया पेट्रोवा', 'email' => 'maria@example.com', 'age' => 25],                ];            },        ],        'user' => [            'type' => $userType,            'args' => [                'id' => Type::nonNull(Type::int()),            ],            'resolve' => function ($root, $args) {                // आईडी द्वारा उपयोगकर्ता खोजें                $users = [                    1 => ['id' => 1, 'name' => 'इवान इवानोव', 'email' => 'ivan@example.com', 'age' => 30],                    2 => ['id' => 2, 'name' => 'मारिया पेट्रोवा', 'email' => 'maria@example.com', 'age' => 25],                ];                return $users[$args['id']] ?? null;            },        ],    ],]);


स्कीमा में संयोजन और क्वेरी निष्पादित करना



अब सब कुछ एक एकल स्कीमा में संयोजित करें और एक परीक्षण क्वेरी निष्पादित करें:



use GraphQL\\GraphQL;use GraphQL\\Schema;

$schema = new Schema([ 'query' => $queryType,]);

// इनकमिंग GraphQL क्वेरी (आमतौर पर POST में आती है)$query = '{ users { id name em

अनुशंसाएँ