Computer >> कंप्यूटर >  >> स्मार्टफोन्स >> iPhone

SwiftUI में एक साधारण Async GET REST API कॉल कैसे करें?

शुरुआती लोगों के लिए इस ट्यूटोरियल में, आप एक उदाहरण के रूप में लोकप्रिय इंटरनेट चक नॉरिस डेटाबेस (आईसीएनडीबी) का उपयोग करके एपीआई कॉल करने के लिए स्विफ्टयूआई का उपयोग करने की मूल बातें सीखेंगे। यह स्विफ्ट और स्विफ्टयूआई का उपयोग करके जल्दी और आसानी से एक चुटकुला प्रदर्शित करेगा।

आप देखेंगे कि कैसे क्रॉस-प्लेटफ़ॉर्म फ्रेमवर्क स्विफ्टयूआई हमें आईओएस, आईपैडओएस, मैकओएस, वॉचओएस, ऐप क्लिप्स और टीवीओएस में ठीक उसी कोड का उपयोग करने देता है, जो अन्यथा असंभव होता।

इसके साथ ही, आप स्विफ्ट 5.5 में पेश किए गए एसिंक-वेट का उपयोग करेंगे, जो आईओएस> v15.0 चलाने वाले आईफोन सहित नए ऑपरेटिंग सिस्टम के लिए काम करता है। यह वास्तव में यूआई थ्रेड को फ्रीज़ किए बिना एक बटन के क्लिक पर डेटा नेटवर्क कॉल को अतुल्यकालिक रूप से करने के हमारे काम को सरल करता है।

मैं उन कोड परिवर्तनों को साझा करूंगा जो आपको पहले करने होंगे। फिर अगले भाग में, मैं कोड का एक संक्षिप्त विश्लेषण साझा करूंगा ताकि शुरुआती भी समझ सकें कि क्या हो रहा है।

SwiftUI में एक साधारण Async GET REST API कॉल कैसे करें?
कोड चलाने वाला tvOS ऐप एक बटन प्रदर्शित करता है जो क्लिक पर मजाक को पुनः प्राप्त करता है

स्विफ्ट और स्विफ्टयूआई में एपीआई कॉल कैसे करें

सबसे पहले, आपको Xcode इंस्टॉल करने के लिए एक मैक की आवश्यकता होगी। एक बार यह स्थापित हो जाने के बाद, Xcode खोलें और एक नया प्रोजेक्ट बनाएं। फिर iOS, macOS, tvOS, या watchOS के लिए "App" चुनें।

ContentView

एक बटन जोड़ने और राज्य . का उपयोग करने के लिए बस अपनी मौजूदा ContentView SwiftUI फ़ाइल को अपडेट करें ICNDB API से जोक रिटर्न के रूप में प्रदर्शित टेक्स्ट को रीफ्रेश करने के लिए वैरिएबल:

import Foundation
import SwiftUI
struct ContentView: View {
    @State private var joke: String = ""
    var body: some View {
        Text(joke)
        Button {
            Task {
                let (data, _) = try await URLSession.shared.data(from: URL(string:"https://api.chucknorris.io/jokes/random")!)
                let decodedResponse = try? JSONDecoder().decode(Joke.self, from: data)
                joke = decodedResponse?.value ?? ""
            }
        } label: {
            Text("Fetch Joke")
        }
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
struct Joke: Codable {
    let value: String
}

एक चुटकुला लें!

यदि आप बिल्ड/प्ले दबाते हैं, तो ऐप आपके द्वारा ऊपर चुने गए किसी भी प्लेटफ़ॉर्म में बन जाएगा:

SwiftUI में एक साधारण Async GET REST API कॉल कैसे करें?
एक ही सटीक कोड चलाने वाले watchOS, macOS और iOS ऐप के स्क्रीनशॉट

कोड विश्लेषण

यदि आप रैंडम जोक URL पर जाते हैं, तो आप देखेंगे कि डेटा JSON प्रारूप में है। आप इसे कॉपी कर सकते हैं और इसकी संरचना को देखने के लिए JSON लिंटर का उपयोग करके यह पता लगा सकते हैं कि Joke ऑब्जेक्ट की कौन सी संपत्ति की आवश्यकता है।

उसके आधार पर, आप ऊपर दिए गए कोड को निर्धारित करते हैं। आप JSON डेटा ऑब्जेक्ट से वास्तविक स्विफ्ट क्लास या स्ट्रक्चर में जाने के लिए कोडेबल प्रोटोकॉल (उर्फ इंटरफेस) का उपयोग करते हैं, और आप उस डेटा के लिए गुण बनाते हैं जिसे आप स्टोर करना चाहते हैं (हमारे मामले में मूल्य)।

JSONDecoder कोडेबल ऑब्जेक्ट का उपयोग करके JSON स्ट्रिंग को पार्स करने में हमारी मदद करता है। यह प्लेटफ़ॉर्म की परवाह किए बिना काम करता है क्योंकि ऐप लॉन्च करने पर लोड होने वाले पेज का एक ही नाम होता है ContentView मंच की परवाह किए बिना।

ऐप्लिकेशन क्लिप्स

ऐप क्लिप ऐप स्टोर से संपूर्ण एप्लिकेशन को डाउनलोड किए बिना "ऐप क्लिप कोड" का उपयोग करके मूल ऐप कार्यक्षमता का उपयोग करने का ऐप्पल का नवीनतम तरीका है।

ऐप क्लिप्स आईओएस ऐप के समान काम करते हैं - केवल अंतर यह है कि आप एक नया ऐप क्लिप प्रोजेक्ट नहीं बनाते हैं। फ़ाइल-> नया-> लक्ष्य-> आईओएस-> ऐप क्लिप पर जाकर आपको मौजूदा आईओएस ऐप में लक्ष्य के रूप में ऐप क्लिप को जोड़ने की जरूरत है जब एक मौजूदा आईओएस ऐप एक्सकोड में खुला हो।

यदि आप आईफोन/आईपैड विजेट्स के बारे में सोच रहे हैं, तो वे एनिमेट नहीं करते हैं। तो बटन क्लिक केवल संबंधित ऐप खोलेंगे और बाहरी एपीआई के माध्यम से टेक्स्ट को स्वतंत्र रूप से अपडेट नहीं कर सकते हैं।

निष्कर्ष

इस लेख में, आपने सीखा कि स्विफ्टयूआई से सबसे आसान तरीके से रीस्टफुल जीईटी एपीआई कॉल कैसे करें!

बेझिझक मुझसे संपर्क करें यदि आपके कोई प्रश्न हैं। मैंने इसे एक अन्य लेख का उपयोग करके समझ लिया और मैंने इसे और सरल बनाने के बारे में सोचा। तो अधिक विवरण और इस कोड को और अधिक जटिल बनाने के तरीकों के लिए, उस लेख को देखें:

स्विफ्टयूआई में async/प्रतीक्षा करें नई स्विफ्ट समवर्ती का उपयोग करने के लिए एक स्विफ्टयूआई ऐप बदलें और पता करें कि चमकदार सतह के नीचे क्या हो रहा है। SwiftUI में एक साधारण Async GET REST API कॉल कैसे करें? ऑड्रे Tamraywenderlich.com SwiftUI में एक साधारण Async GET REST API कॉल कैसे करें?
  1. स्विफ्टयूआई में गेमकिट लीडरबोर्ड को कैसे कार्यान्वित करें?

    इस लेख में हम बात करेंगे कि आपके ऐप में गेम सेंटर के लीडरबोर्ड को क्यों और कैसे लागू किया जाए। क्यों GameCenter एक विशाल पुनरुद्धार कर रहा है आप स्कोरबोर्ड के बिना iPhone गेम बना सकते हैं, लेकिन लीडरबोर्ड गेम को अधिक प्रतिस्पर्धी महसूस कराने में मदद कर सकते हैं, जैसे लोग दुनिया भर में एक दूसरे के

  1. एक बजट पर ऐप स्टोर-योग्य आईओएस ऐप पूर्वावलोकन कैसे करें

    2014 में वापस, ऐप्पल ने ऐप स्टोर में ऐप पूर्वावलोकन जोड़ना संभव बना दिया। ऐप पूर्वावलोकन संभावित उपयोगकर्ताओं को यह दिखाने का सबसे अच्छा तरीका है कि ऐप डाउनलोड करने से पहले आपके ऐप को क्या पेशकश करनी है। वास्तव में, StoreMaven के अनुसार, उपयोगकर्ताओं द्वारा ऐप पूर्वावलोकन के साथ ऐप इंस्टॉल करने की स

  1. iTunes या Apple खरीद के लिए धनवापसी कैसे प्राप्त करें

    आईट्यून्स या ऐप स्टोर से गलती से कोई ऐप, संगीत या किताब खरीद ली है? यहां बताया गया है कि आप सीधे Apple से धनवापसी का अनुरोध कैसे कर सकते हैं। जब कोई भौतिक वस्तु जो आपको पसंद नहीं है गलती से खरीदी जाती है, तो आप उसे स्टोर पर वापस कर सकते हैं और धनवापसी प्राप्त कर सकते हैं। लेकिन जब यह मैक पर आईट्यून