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

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

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

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

GraphQL और Swift का परिचय

\n

GraphQL API के लिए एक क्वेरी भाषा है जो क्लाइंट को केवल वही डेटा प्राप्त करने की अनुमति देती है जिसकी उन्हें आवश्यकता होती है, और कुछ भी अतिरिक्त नहीं। iOS और macOS डेवलपर्स के लिए, GraphQL का एकीकरण कुशल और लचीले मोबाइल एप्लिकेशन बनाने के लिए नई संभावनाएं खोलता है। इस ट्यूटोरियल में, हम व्यावहारिक रूप से समझेंगे कि Swift प्रोजेक्ट में GraphQL API को कैसे कनेक्ट करें, बुनियादी क्वेरी और म्यूटेशन कैसे करें, और संभावित त्रुटियों को कैसे संभालें।

\n

पारंपरिक REST के विपरीत, GraphQL एक ही अनुरोध में कई संसाधनों को क्वेरी करने की अनुमति देता है, जो सीमित ट्रैफ़िक वाले मोबाइल उपकरणों के लिए विशेष रूप से महत्वपूर्ण है। हम लोकप्रिय लाइब्रेरी Apollo iOS का उपयोग करेंगे - Swift पर GraphQL के साथ काम करने के लिए सबसे स्थिर और दस्तावेजित समाधान।

\n\n

प्रोजेक्ट तैयार करना और Apollo iOS स्थापित करना

\n

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

\n

Xcode खोलें और एक नया iOS (या macOS) प्रोजेक्ट बनाएं। GraphQL के साथ काम करने के लिए, हम Swift Package Manager (SPM) के माध्यम से Apollo iOS स्थापित करेंगे।

\n
    \n
  1. Xcode में File → Add Packages चुनें
  2. \n
  3. रिपॉजिटरी URL डालें: https://github.com/apollographql/apollo-ios.git
  4. \n
  5. नवीनतम स्थिर संस्करण चुनें (लेखन के समय — 1.15+)
  6. \n
  7. अपने टार्गेट में पैकेज जोड़ें
  8. \n
\n\n

चरण 2: GraphQL स्कीमा से कोड जनरेट करना

\n

Apollo iOS कोड जनरेशन का उपयोग करता है: आप .graphql फ़ाइलों में क्वेरी का वर्णन करते हैं, और उपयोगिता टाइप किया हुआ Swift कोड बनाती है। इसके लिए आवश्यक है:

\n
    \n
  1. प्रोजेक्ट में GraphQL फ़ोल्डर बनाएं
  2. \n
  3. वहाँ schema.graphqls फ़ाइल (आपके API की स्कीमा) रखें — आमतौर पर इसे introspection के माध्यम से प्राप्त किया जा सकता है
  4. \n
  5. एक क्वेरी फ़ाइल बनाएं, उदाहरण के लिए GetUser.graphql:
  6. \n
\n\n
query GetUser($id: ID!) {\n  user(id: $id) {\n    id\n    name\n    email\n    posts {\n      title\n    }\n  }\n}
\n\n

फिर कोड जनरेटर चलाने के लिए एक Build Phase जोड़ें। Homebrew के माध्यम से Apollo CLI स्थापित करना सबसे आसान है:

\n
brew install apollo-ios-cli
\n\n

और प्रोजेक्ट की रूट डायरेक्टरी में कमांड चलाएं:

\n
./apollo-ios-cli generate
\n\n

इसके बाद, Sources/API फ़ोल्डर में डेटा मॉडल के साथ जनरेटेड Swift फ़ाइलें दिखाई देंगी।

\n\n

बुनियादी GraphQL क्वेरी निष्पादित करना

\n

Apollo क्लाइंट सेटअप करना

\n

अपने GraphQL एंडपॉइंट का URL निर्दिष्ट करते हुए Apollo क्लाइंट का एक इंस्टेंस बनाएं। यह आमतौर पर AppDelegate या एक अलग सर्विस क्लास में किया जाता है:

\n\n
import Apollo\n\nclass NetworkService {\n    static let shared = NetworkService()\n    private(set) lazy var apollo: ApolloClient = {\n        let url = URL(string: "https://your-api.com/graphql")!\n        return ApolloClient(url: url)\n    }()\n}
\n\n

डेटा क्वेरी (Query)

\n

अब हम उपयोगकर्ता प्राप्त करने के लिए क्वेरी निष्पादित करेंगे। जनरेटेड कोड एक GetUserQuery संरचना बनाएगा:

\n\n
import Foundation\n\nclass UserViewModel: ObservableObject {\n    @Published var user: User?\n    @Published var errorMessage: String?\n    \n    func fetchUser(id: String) {\n        NetworkService.shared.apollo.fetch(query: GetUserQuery(id: id)) { [weak self] result in\n            DispatchQueue.main.async {\n                switch result {\n                case .success(let graphQLResult):\n                    if let userData = graphQLResult.data?.user {\n                        self?.user = User(\n                            id: userData.id,\n                            name: userData.name,\n                            email: userData.email\n                        )\n                    }\n                case .failure(let error):\n                    self?.errorMessage = "त्रुटि: \\(error.localizedDescription)"\n                }\n            }\n        }\n    }\n}
\n\n

ध्यान दें: हम UI को प्रतिक्रियाशील रूप से अपडेट करने के लिए @Published का उपयोग कर रहे हैं

ब्लॉग

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