Sobes.tech
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ą.