GraphQL API के साथ Swift: चरण-दर-चरण ट्यूटोरियल
GraphQL अपनी लचीलापन और दक्षता के कारण आधुनिक API के लिए एक मानक बन रहा है। REST के विपरीत, जहाँ आपको एक निश्चित डेटा संरचना मिलती है, GraphQL आपको केवल वही अनुरोध करने की अनुमति देता है जो आपको चाहिए। इस ट्यूटोरियल में, हम सीखेंगे कि Apollo iOS लाइब्रेरी का उपयोग करके iOS और macOS के लिए Swift ऐप्लिकेशन में GraphQL API को कैसे एकीकृत किया जाए। आप क्वेरी, म्यूटेशन करना और त्रुटियों को संभालना सीखेंगे।
1. प्रोजेक्ट सेटअप और Apollo iOS की स्थापना
पहला कदम एक नया Xcode प्रोजेक्ट बनाना और Swift Package Manager (SPM) के माध्यम से Apollo iOS निर्भरता जोड़ना है।
चरण 1.1: प्रोजेक्ट बनाना
Xcode खोलें और एक नया प्रोजेक्ट (iOS App या macOS App) बनाएँ। SwiftUI या UIKit चुनें — हमारा उदाहरण दोनों प्लेटफार्मों पर काम करेगा।
चरण 1.2: SPM के माध्यम से Apollo iOS स्थापित करना
- Xcode में
File → Add Packages...पर जाएँ - रिपॉजिटरी URL डालें:
https://github.com/apollographql/apollo-ios.git - नवीनतम स्थिर संस्करण चुनें (उदाहरण के लिए, 1.15.0) और Add Package पर क्लिक करें।
- दिखाई देने वाली विंडो में, अपना प्रोजेक्ट चुनें और Apollo पैकेज जोड़ें।
चरण 1.3: स्कीमा और कोड जनरेशन
Apollo iOS GraphQL स्कीमा के आधार पर कोड जनरेशन का उपयोग करता है। पहले अपने API की स्कीमा डाउनलोड करें (आमतौर पर introspection query के माध्यम से)। परीक्षण के लिए, हम सार्वजनिक API Countries GraphQL (https://countries.trevorblades.com) का उपयोग करेंगे।
प्रोजेक्ट की रूट में schema.graphqls फ़ाइल बनाएँ और उसमें स्कीमा डालें (इसे GraphQL Playground के माध्यम से प्राप्त किया जा सकता है)। फिर Build Phases में एक जनरेशन स्क्रिप्ट जोड़ें:
// Build Phases में स्क्रिप्ट का उदाहरणif which apollo-ios-cli >/dev/null; then apollo-ios-cli generateelse echo "Apollo CLI स्थापित नहीं है। इसे इसके माध्यम से स्थापित करें: brew install apollo-ios-cli"fiHomebrew के माध्यम से CLI स्थापित करें: brew install apollo-ios-cli।
2. बेसिक GraphQL क्वेरी निष्पादित करना
अब जब प्रोजेक्ट सेटअप हो गया है, तो क्वेरी निष्पादित करने के लिए कोड लिखते हैं। हम उनके कोड और नामों के साथ देशों की सूची प्राप्त करेंगे।
चरण 2.1: GraphQL क्वेरी बनाना
प्रोजेक्ट फ़ोल्डर में Countries.graphql फ़ाइल बनाएँ और क्वेरी जोड़ें:
query GetCountries { countries { code name }}इसके बाद, कोड जनरेशन चलाएँ (Build या टर्मिनल के माध्यम से)। Apollo GetCountriesQuery और GetCountriesQuery.Data संरचनाएँ बनाएगा।
चरण 2.2: ApolloClient कॉन्फ़िगर करना
एक नेटवर्क मैनेजर बनाएँ:
import Apollo
class NetworkManager { static let shared = NetworkManager() private(set) lazy var apollo: ApolloClient = { let url = URL(string: "https://countries.trevorblades.com")! return ApolloClient(url: url) }()}चरण 2.3: SwiftUI में क्वेरी निष्पादित करना
SwiftUI के लिए उदाहरण:
import SwiftUI
struct ContentView: View { @State private var countries: [GetCountriesQuery.Data.Country] = [] var body: some View { List(countries, id: \\.code) { country in Text("\\(country.name) (\\(country.code))") } .onAppear { loadCountries() } } func loadCountries() { NetworkManager.shared.apollo.fetch(query: GetCountriesQuery()) { result in switch result { case .success(let graphQLResult): if let countries = graphQLResult.data?.countries { self.countries = countries } case .failure(let error): print("क्वेरी त्रुटि: \\(error.localizedDescription)") } } }}ऐप्लिकेशन चलाएँ। यदि सब कुछ सही है, तो आपको देशों की सूची दिखाई देगी।