Junior — Middle
Kaip įgyvendinta tinklo sąveika jūsų projekte?
sobes.tech AI
Atsakymas iš AI
Mano iOS projekte tinklo sąveika įgyvendinta naudojant URLSession, kuris teikia API HTTP užklausoms vykdyti.
Patogumui ir pakartotiniam naudojimui sukūriau tinklo sluoksnį su abstrakcija, kuris tvarko užklausų kūrimą, atsakymų ir klaidų apdorojimą. JSON analizavimui taip pat naudojamas Codable.
Paprasto užklausos pavyzdys:
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()
}
Didesniems užduotims naudojamos trečiųjų šalių bibliotekos, pavyzdžiui, Alamofire, kurios palengvina užklausų kūrimą ir atsakymų apdorojimą.