REST API (Representational State Transfer) হলো একটি আর্কিটেকচার যা HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। REST API সাধারণত JSON ফরম্যাটে ডেটা বিনিময় করে, যা অ্যাপ্লিকেশনগুলোর মধ্যে ইন্টারঅ্যাকশন সহজ করে। Swift-এ REST API-এর সাথে যোগাযোগ করতে URLSession এবং URLRequest ব্যবহার করা হয়।
REST API-এর মূল HTTP মেথড
- GET: সার্ভার থেকে ডেটা রিট্রিভ করে।
- POST: নতুন ডেটা সার্ভারে প্রেরণ করে।
- PUT/PATCH: বিদ্যমান ডেটা আপডেট করে।
- DELETE: ডেটা মুছে ফেলে।
REST API-তে GET রিকোয়েস্টের উদাহরণ
import Foundation
// ১. URL তৈরি করুন
guard let url = URL(string: "https://api.example.com/data") else { return }
// ২. URLRequest সেটআপ
var request = URLRequest(url: url)
request.httpMethod = "GET"
// ৩. URLSession-এর মাধ্যমে API কল
URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { return }
// ৪. JSON ডেটা হ্যান্ডলিং
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print("Error parsing JSON: \(error)")
}
}.resume()
REST API এবং Codable-এর মাধ্যমে JSON ডেটা ডিকোড করা
Swift-এর Codable প্রোটোকল ব্যবহার করে JSON ডেটা সরাসরি মডেলে কনভার্ট করা যায়। এটি REST API থেকে JSON ডেটা গ্রহণ এবং প্রক্রিয়াকরণ সহজ করে তোলে।
উদাহরণ:
struct User: Codable {
let id: Int
let name: String
}
let url = URL(string: "https://api.example.com/user")!
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data else { return }
do {
let user = try JSONDecoder().decode(User.self, from: data)
print("User ID: \(user.id), Name: \(user.name)")
} catch {
print("Decoding error: \(error)")
}
}.resume()
REST API এর সুবিধা এবং চ্যালেঞ্জ
REST API ক্লায়েন্ট-সার্ভার কমিউনিকেশন সহজ করে, যা ভিন্ন ভিন্ন অ্যাপ্লিকেশন প্ল্যাটফর্মের মধ্যে ডেটা শেয়ারিং এবং কাজ পরিচালনায় সাহায্য করে। তবে, স্টেবল কমিউনিকেশনের জন্য ইন্টারনেট কানেকশন প্রয়োজন এবং JSON ডেটা প্রক্রিয়াকরণে সময় ও মেমোরি ব্যবহারে সাবধান থাকা উচিত।