REST API को तेजी से एक्सेस करने के लिए हमें स्विफ्ट में नेटवर्किंग के मूल तरीके का उपयोग करते हुए कई चरणों से गुजरना होगा, जो कि URL सत्र और डेटा टास्क का उपयोग कर रहा है।
बाकी प्रतिनिधि राज्य हस्तांतरण के लिए खड़ा है, जो वेब सेवाओं द्वारा उपयोग की जाने वाली बाधाओं के कुछ सेट को परिभाषित करता है। स्विफ्ट में, हम वेब सेवाओं को निम्नलिखित तरीके से एक्सेस कर सकते हैं।
सबसे पहले, हमें एक सत्र ऑब्जेक्ट बनाने की आवश्यकता है, जो डिफ़ॉल्ट कॉन्फ़िगरेशन है।
फिर हमें उस प्रकार का URL अनुरोध बनाने की आवश्यकता है जिसकी हमें आवश्यकता है, यह प्राप्त कर सकता है, पोस्ट कर सकता है, हटा सकता है या डाल सकता है। इस उदाहरण में, हम "GET" प्रकार देख रहे हैं।
url =URL (स्ट्रिंग:URLString) दें // url =NSURL (स्ट्रिंग:स्ट्रिंग के रूप में urlString) वर अनुरोध करें:URLRequest =URLRequest (url:url!) अनुरोध।httpMethod ="GET"request.addValue("application /json", forHTTPHeaderField:"Content-Type")request.addValue("application/json", forHTTPHeaderField:"Accept")
एक बार जब हम अनुरोध ऑब्जेक्ट बना लेते हैं, तो हमें डेटा टास्क करने की आवश्यकता होती है, URL के साथ जिसे हमने अभी ऊपर बनाया है। इस तरह हमारा पूरा डेटा टास्क पद्धति अब इस तरह दिखनी चाहिए।
डेटाटास्क =session.dataTask(साथ:url!) {डेटा, प्रतिक्रिया, गार्ड में त्रुटि httpResponse =प्रतिक्रिया के रूप में दें? HTTPURLResponse, प्राप्त डेटा =डेटा अन्य {प्रिंट ("त्रुटि:मान्य http प्रतिक्रिया नहीं") वापसी} स्विच (httpResponse.statusCode) {केस 200:// सफलता प्रतिक्रिया। ब्रेक केस 400:ब्रेक डिफॉल्ट:ब्रेक }}dataTask.resume()
अब हम इसे एक फंक्शन में एम्बेड कर सकते हैं और अपने कोड में उपयोग कर सकते हैं।
func HitAPI(_for URLString:String) { कॉन्फ़िगरेशन =URLSessionConfiguration.default चलो सत्र =URLSession (कॉन्फ़िगरेशन:कॉन्फ़िगरेशन) दें url =URL (स्ट्रिंग:URLString) // url =NSURL (स्ट्रिंग:urlString को स्ट्रिंग के रूप में) var दें अनुरोध:URLRequest =URLRequest (url:url!) अनुरोध। ") dataTask =session.dataTask (साथ:url!) {डेटा, प्रतिक्रिया, त्रुटि // 1 में:सफल GET अनुरोध गार्ड के लिए HTTP प्रतिक्रिया की जाँच करें httpResponse =प्रतिक्रिया के रूप में दें? HTTPURLResponse, प्राप्त डेटा =डेटा अन्य {प्रिंट ("त्रुटि:मान्य http प्रतिक्रिया नहीं") वापसी} स्विच (httpResponse.statusCode) {केस 200:// सफलता प्रतिक्रिया। ब्रेक केस 400:ब्रेक डिफॉल्ट:ब्रेक } } dataTask.resume()}
नोट - कुछ एपीआई तक पहुंचने के लिए आपको अपनी info.plist फ़ाइल में परिवहन सुरक्षा अपवादों को अनुमति देने की आवश्यकता हो सकती है।
इस उदाहरण के साथ कोई आउटपुट नहीं दिखाया गया है क्योंकि कुछ डेटा प्राप्त करने के लिए एपीआई की आवश्यकता होती है।