সুইফ্টে REST API গুলি অ্যাক্সেস করতে আমাদের সুইফ্টে নেটওয়ার্কিং এর নেটিভ উপায় ব্যবহার করে কয়েকটি ধাপ অতিক্রম করতে হবে, যা URL সেশন এবং ডেটা টাস্ক ব্যবহার করছে৷
রেস্ট মানে রিপ্রেজেন্টেশনাল স্টেট ট্রান্সফার, যা কিছু সীমাবদ্ধতাকে সংজ্ঞায়িত করে যা ওয়েব সার্ভিসের দ্বারা ব্যবহার করা হবে। দ্রুততার সাথে, আমরা নিম্নলিখিত উপায়ে ওয়েব পরিষেবাগুলি অ্যাক্সেস করতে পারি৷
প্রথমত, আমাদের একটি সেশন অবজেক্ট তৈরি করতে হবে, যা ডিফল্ট কনফিগারেশন।
let configuration = URLSessionConfiguration.default let session = URLSession(configuration: configuration)
তারপর আমাদের যে ধরনের ইউআরএল রিকোয়েস্ট তৈরি করতে হবে তা পেতে, পোস্ট করতে, মুছতে বা রাখতে পারি। এই উদাহরণে, আমরা “GET” টাইপ দেখছি।
let url = URL(string: URLString) //let url = NSURL(string: urlString as String) var request : URLRequest = URLRequest(url: url!) request.httpMethod = "GET" request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept")
একবার আমরা অনুরোধ অবজেক্ট তৈরি করার পরে, আমাদের উপরে তৈরি করা URL দিয়ে dataTask করতে হবে। আমাদের সম্পূর্ণ ডেটাটাস্ক পদ্ধতি এখন দেখতে এইরকম হওয়া উচিত।
let dataTask = session.dataTask(with: url!) { data,response,error in guard let httpResponse = response as? HTTPURLResponse, let receivedData = data else { print("error: not a valid http response") return } switch (httpResponse.statusCode) { case 200: //success response. break case 400: break default: break } } dataTask.resume()
এখন আমরা এটিকে একটি ফাংশনে এম্বেড করতে পারি এবং আমাদের কোডে ব্যবহার করতে পারি৷
৷
func hitAPI(_for URLString:String) { let configuration = URLSessionConfiguration.default let session = URLSession(configuration: configuration) let url = URL(string: URLString) //let url = NSURL(string: urlString as String) var request : URLRequest = URLRequest(url: url!) request.httpMethod = "GET" request.addValue("application/json", forHTTPHeaderField: "Content-Type") request.addValue("application/json", forHTTPHeaderField: "Accept") let dataTask = session.dataTask(with: url!) { data,response,error in // 1: Check HTTP Response for successful GET request guard let httpResponse = response as? HTTPURLResponse, let receivedData = data else { print("error: not a valid http response") return } switch (httpResponse.statusCode) { case 200: //success response. break case 400: break default: break } } dataTask.resume() }
দ্রষ্টব্য − কিছু API অ্যাক্সেস করার জন্য আপনাকে আপনার info.plist ফাইলে ট্রান্সপোর্ট সিকিউরিটি ব্যতিক্রমের অনুমতি দিতে হতে পারে।
এই উদাহরণের সাথে কোন আউটপুট দেখানো হয়নি কারণ কিছু ডেটা পেতে একটি API প্রয়োজন হয়৷
৷