Junior — Middle
Kako je implementirana mrežna interakcija u vašem projektu?
sobes.tech АИ
Одговор од АИ
У мом пројекту за iOS, мрежна комуникација је реализована коришћењем URLSession, који пружа API за извођење HTTP захтева.
За удобност и поновну употребу, креирао сам слој мреже са апстракцијом која управља креирањем захтева, обрадом одговора и грешака. Такође се користи Codable за парсирање JSON.
Пример једноставног захтева:
func fetchUsers(completion: @escaping ([User]?, Error?) -> Void) {
let url = URL(string: "https://api.example.com/users")!
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
completion(nil, error)
return
}
do {
let users = try JSONDecoder().decode([User].self, from: data)
completion(users, nil)
} catch {
completion(nil, error)
}
}.resume()
}
За сложније задатке користе се библиотеке трећих страна, као што је Alamofire, за лакше креирање захтева и обраду одговора.