GraphQL और Swift का परिचय
\nGraphQL Facebook द्वारा विकसित API के लिए एक आधुनिक क्वेरी भाषा है। REST के विपरीत, जहां आपको एक निश्चित डेटा संरचना मिलती है, GraphQL क्लाइंट (आपके Swift एप्लिकेशन) को केवल उन्हीं फ़ील्ड को अनुरोध करने की अनुमति देता है जिनकी वास्तव में आवश्यकता होती है। यह विशेष रूप से iOS और macOS के साथ काम करने वाले मोबाइल डेवलपर्स के लिए प्रासंगिक है: कम डेटा - कम ट्रैफ़िक, तेज़ लोडिंग, बेहतर UX।
\nइस ट्यूटोरियल में, हम आपके Swift प्रोजेक्ट में GraphQL API को कैसे कनेक्ट करें, बुनियादी क्वेरी और म्यूटेशन कैसे करें, यह समझेंगे। हम आधिकारिक क्लाइंट Apollo iOS का उपयोग करेंगे - जो Apple इकोसिस्टम में GraphQL के साथ काम करने के लिए सबसे लोकप्रिय और समर्थित लाइब्रेरी है।
\nलेख के अंत तक, आप यह कर पाएंगे:
\n- \n
- Xcode प्रोजेक्ट में Apollo iOS सेट करना \n
- GraphQL क्वेरी (Query) लिखना और निष्पादित करना \n
- डेटा बदलने के लिए म्यूटेशन (Mutation) भेजना \n
- प्रतिक्रियाओं और त्रुटियों को संभालना \n
1. प्रोजेक्ट सेटअप और Apollo iOS की स्थापना
\n1.1. नया प्रोजेक्ट बनाना
\nXcode खोलें और एक नया प्रोजेक्ट बनाएं (iOS App या macOS App)। Swift भाषा और SwiftUI या UIKit इंटरफ़ेस चुनें - यह महत्वपूर्ण नहीं है, क्योंकि नेटवर्किंग UI-फ्रेमवर्क पर निर्भर नहीं करती है।
\n\n1.2. Swift Package Manager के माध्यम से स्थापना
\nApollo iOS को SPM के माध्यम से आसानी से जोड़ा जा सकता है। File → Add Packages... पर जाएं और URL पेस्ट करें:
https://github.com/apollographql/apollo-ios.git\nनवीनतम स्थिर संस्करण चुनें (लेखन के समय - 1.15.0) और अपने टार्गेट में पैकेज जोड़ें।
\nसाथ ही Apollo Code Generation CLI स्थापित करें - GraphQL स्कीमा से Swift प्रकार उत्पन्न करने का उपकरण। इसे Homebrew के माध्यम से स्थापित करना सबसे आसान है:
\nbrew install apollo-ios-cli\nयदि Homebrew स्थापित नहीं है, तो npm का उपयोग किया जा सकता है:
npm install -g apollo-ios-cli\n\n1.3. कॉन्फ़िगरेशन का आरंभीकरण
\nटर्मिनल में, अपने प्रोजेक्ट की रूट डायरेक्टरी से, निष्पादित करें:
\napollo-ios-cli init --module-name YourAppName --schema-namespace GraphQL\nयह कमांड apollo-codegen-config.json फ़ाइल और GraphQL फ़ोल्डर बनाएगा, जहां आपकी .graphql फ़ाइलें संग्रहीत होंगी।
अब प्रोजेक्ट में सर्वर स्कीमा जोड़ें। यदि सर्वर schema.json या schema.graphqls प्रदान करता है, तो इसे GraphQL फ़ोल्डर में कॉपी करें। यदि नहीं, तो डाउनलोड करने के लिए अंतर्निहित कमांड का उपयोग करें:
apollo-ios-cli fetch-schema --endpoint=https://your-graphql-endpoint.com/graphql\n\n2. पहली GraphQL क्वेरी (Query) लिखना
\n2.1. .graphql फ़ाइल बनाना
\nGraphQL फ़ोल्डर में Queries.graphql फ़ाइल बनाएं और एक सरल क्वेरी लिखें। मान लीजिए कि हमारे पास उपयोगकर्ताओं की सूची प्राप्त करने के लिए API है:
query GetUsers {\n users {\n id\n name\n email\n }\n}\n\n2.2. Swift कोड जनरेशन
\nटर्मिनल से कोड जनरेशन चलाएं:
\napollo-ios-cli generate\nसफल जनरेशन के बाद, Sources/API फ़ोल्डर (या आपके द्वारा निर्दिष्ट स्थान) में API.swift फ़ाइल GetUsersQuery, GetUsersQuery.Data आदि प्रकारों के साथ दिखाई देगी।
2.3. Swift से क्वेरी निष्पादित करना
\nअब Apollo क्लाइंट का एक इंस्टेंस बनाएं और क्वेरी निष्पादित करें। अपने ContentView.swift (या किसी अन्य फ़ाइल) में लिखें:
import Apollo\nimport SwiftUI\n\nclass NetworkManager {\n static let shared = NetworkManager()\n private(set) lazy var apollo = ApolloClient(url: URL(string: "https://your-graphql-endpoint.com/graphql")!)\n}\n\nstruct ContentView: View {\n @State private var users: [GetUsersQuery.Data.User] = []\n \n var body: some View {\n List(users, id: \\.id) { user in\n VStack(alignment: .leading) {\n Text(user.name)\n