परिचय: क्यों GraphQL और Swift एक आदर्श जोड़ी हैं
आधुनिक iOS-डेवलपमेंट सर्वर के साथ प्रभावी इंटरैक्शन के बिना अकल्पनीय है। REST API धीरे-धीरे अधिक लचीली और कुशल तकनीक — GraphQL को रास्ता दे रहा है। इस ट्यूटोरियल में, हम व्यावहारिक रूप से Swift एप्लिकेशन में GraphQL API को एकीकृत करने का तरीका समझेंगे, Apollo iOS लाइब्रेरी का उपयोग करके।
GraphQL आपको ठीक उतना ही डेटा अनुरोध करने की अनुमति देता है जितनी आवश्यकता है — न अधिक, न कम। Swift के लिए, इसका अर्थ है ट्रैफ़िक में कमी, कार्य में तेज़ी और कोड का सरलीकरण। हम पूरी प्रक्रिया से गुज़रेंगे: प्रोजेक्ट सेटअप से लेकर जटिल क्वेरी और म्यूटेशन निष्पादित करने तक।
1. प्रोजेक्ट सेटअप और Apollo iOS की स्थापना
पहला कदम — Xcode प्रोजेक्ट तैयार करना और निर्भरताएँ स्थापित करना। सबसे सुविधाजनक तरीका Swift Package Manager के माध्यम से है।
1.1 नया प्रोजेक्ट बनाना
Xcode खोलें और एक नया प्रोजेक्ट बनाएँ (iOS App या macOS App)। SwiftUI या UIKit चुनें — इससे कोई फर्क नहीं पड़ता। इसे GraphQLDemo नाम दें।
1.2 SPM के माध्यम से Apollo iOS जोड़ना
- Xcode में जाएँ: File → Add Package Dependencies...
- रिपॉजिटरी URL डालें:
https://github.com/apollographql/apollo-ios.git - नवीनतम स्थिर संस्करण चुनें और Add Package दबाएँ।
- सुनिश्चित करें कि पैकेज आपके एप्लिकेशन के टार्गेट में जोड़ा गया है।
1.3 स्कीमा कोड जनरेशन
Apollo iOS कोड जनरेशन का उपयोग करता है। इसके लिए हमें एक स्कीमा फ़ाइल .graphqls (आमतौर पर सर्वर से डाउनलोड की जाती है) और क्वेरी फ़ाइलें .graphql चाहिए।
// प्रोजेक्ट संरचना:// GraphQLDemo/// ├── GraphQL/// │ ├── schema.graphqls // सर्वर स्कीमा// │ ├── Queries.graphql // क्वेरी// │ └── Mutations.graphql // म्यूटेशनफ़ाइलें जोड़ने के बाद, टर्मिनल के माध्यम से कोड जनरेशन चलाएँ:
cd /प्रोजेक्ट/का/पथ./Pods/Apollo/apollo-ios-cli --download-schema --endpoint=https://आपका-सर्वर/graphql./Pods/Apollo/apollo-ios-cli --generateअब आपके पास प्रकारों और क्वेरी के साथ जनरेटेड Swift फ़ाइलें हैं।
2. Swift पर बुनियादी क्वेरी
हम उपयोगकर्ताओं की सूची प्राप्त करने के लिए एक सरल क्वेरी समझेंगे। मान लें कि हमारी स्कीमा में User प्रकार है जिसमें id, name, email फ़ील्ड हैं।
2.1 .graphql फ़ाइल बनाना
GraphQL फ़ोल्डर में Queries.graphql फ़ाइल बनाएँ:
query GetUsers { users { id name email }}2.2 Swift में क्वेरी निष्पादित करना
पहले Apollo क्लाइंट को इनिशियलाइज़ करें:
import Apollo
class NetworkManager { static let shared = NetworkManager() let apollo: ApolloClient private init() { let url = URL(string: "https://आपका-सर्वर/graphql")! apollo = ApolloClient(url: url) }}अब किसी भी ViewController या ViewModel में क्वेरी निष्पादित करें:
import SwiftUI
struct UsersView: View { @State private var users: [GetUsersQuery.Data.User] = [] var body: some View { List(users, id: \\.id) { user in VStack(alignment: .leading) { Text(user.name) .font(.headline) Text(user.email) .font(.subheadline) .foregroundColor(.gray) } } .onAppear { loadUsers() } } private func loadUsers() { NetworkManager.shared.apollo.fetch(query: GetUsersQuery()) { result in switch result { case .success(let graphQLResult): if let usersData = graphQLResult.data?.users { self.users = usersData } case .failure(let error): print("त्रुटि: \\(error.localizedDescri