PHP के साथ GraphQL API: शुरुआती लोगों के लिए चरण-दर-चरण ट्यूटोरियल

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

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

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

GraphQL और PHP का परिचय

\n

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

\n

इस ट्यूटोरियल में, हम शुरुआत से PHP पर एक सरल GraphQL API बनाएंगे। आप सीखेंगे कि आवश्यक लाइब्रेरी कैसे स्थापित करें, स्कीमा को परिभाषित करें, रिज़ॉल्वर लिखें और क्वेरी को संसाधित करें। यह लेख शुरुआती डेवलपर्स के लिए है जो PHP और डेटाबेस (जैसे, MySQL या SQLite) की मूल बातों से परिचित हैं।

\n

हम webonyx/graphql-php लाइब्रेरी का उपयोग करेंगे - यह PHP पर GraphQL को लागू करने के लिए सबसे लोकप्रिय और स्थिर पैकेज है। अंत में, आप अपना स्वयं का GraphQL सर्वर चला सकेंगे और किसी भी HTTP क्लाइंट (जैसे, cURL या Insomnia) के माध्यम से उस पर क्वेरी निष्पादित कर सकेंगे।

\n\n

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

\n

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

\n

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

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

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

\n
composer require webonyx/graphql-php
\n

हमें एक PSR-7 संगत HTTP सर्वर की भी आवश्यकता होगी। सरलता के लिए, हम अंतर्निहित PHP सर्वर और अनुरोधों और प्रतिक्रियाओं के साथ काम करने के लिए guzzlehttp/psr7 लाइब्रेरी का उपयोग करेंगे:

\n
composer require guzzlehttp/psr7
\n\n

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

\n

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

\n
    \n
  • index.php — एप्लिकेशन का प्रवेश बिंदु
  • \n
  • schema.graphql — GraphQL स्कीमा परिभाषा वाली फ़ाइल
  • \n
  • resolvers.php — रिज़ॉल्वर फ़ंक्शन वाली फ़ाइल
  • \n
  • data.php — डेटाबेस का अनुकरण (डेटा के साथ सरणी)
  • \n
\n\n

GraphQL स्कीमा को परिभाषित करना

\n

चरण 3: स्कीमा लिखना

\n

स्कीमा डेटा प्रकारों और उपलब्ध संचालन (क्वेरी और म्यूटेशन) का विवरण है। आइए पुस्तकों की सूची प्रबंधित करने के लिए एक सरल स्कीमा बनाएं। schema.graphql फ़ाइल खोलें और निम्नलिखित कोड डालें:

\n
type Book {\n    id: ID!\n    title: String!\n    author: String!\n    year: Int\n}\n\ntype Query {\n    books: [Book]\n    book(id: ID!): Book\n}\n\ntype Mutation {\n    addBook(title: String!, author: String!, year: Int): Book\n    deleteBook(id: ID!): Book\n}
\n

यहाँ हमने परिभाषित किया है:

\n
    \n
  • Book — id, title, author और year फ़ील्ड वाला डेटा प्रकार।
  • \n
  • Query — डेटा प्राप्त करने के लिए संचालन: सभी पुस्तकों की सूची और ID द्वारा पुस्तक।
  • \n
  • Mutation — डेटा बदलने के लिए संचालन: पुस्तक जोड़ना और हटाना।
  • \n
\n\n

चरण 4: डेटा और रिज़ॉल्वर तैयार करना

\n

पुस्तकों की सरणी के साथ data.php फ़ाइल बनाएं:

\n
<?php\n$books = [\n    1 => ['id' => 1, 'title' => 'युद्ध और शांति', 'author' => 'लियो टॉल्स्टॉय', 'year' => 1869],\n    2 => ['id' => 2, 'title' => 'अपराध और दंड', 'author' => 'फ्योदोर दोस्तोयेव्स्की', 'year' => 1866],\n];
\n

अब resolvers.php फ़ाइल में रिज़ॉल्वर लिखें। रिज़ॉल्वर ऐसे फ़ंक्शन हैं जो स्कीमा के प्रत्येक फ़ील्ड के लिए डेटा लौटाते हैं।

\n
<?php\nrequire 'data.php';\n\nfunction resolveBooks() {\n    global $books;\n    return array_values($books);\n}\n\nfunction resolveBook($root, $args) {\n    global $books;\n    return $books[$args['id']] ?? null;\n}\n\nfunction resolveAddBook($root, $args) {\n    global $books;\n    $newId = count($books) + 1;\n    $newBook = [\n        'id' => $newId,\n        'title' => $args['title'],\n        'author' => $args['author'],\n        'year' => $args['year'] ?? null\n    ];\n    $books[$newId] = $newBook;\n    return $newBook;\n}\n\nfunction resolveDeleteBook($root, $args) {\n    global $books;\n                

ब्लॉग

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