Avatar ·

Как сделать HTTP запрос в Swift?

Всем привет! Подскажите, пожалуйста, как правильно выполнить HTTP-запрос в Swift для iOS/macOS приложения. Я новичок в разработке под Apple, и пока не совсем понимаю, какой подход сейчас считается актуальным.

Мне нужно отправить GET-запрос на публичное REST API (например, получить список пользователей) и обработать ответ в формате JSON. Я пробовал использовать старый URLSession с делегатами, но код получается громоздким и сложным для понимания. Также наткнулся на сторонние библиотеки вроде Alamofire, но хотел бы разобраться сначала с нативными средствами.

Вот пример моего текущего кода, который не работает корректно (ошибка при декодировании JSON):

let url = URL(string: "https://jsonplaceholder.typicode.com/users")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    if let data = data {
        let json = try? JSONSerialization.jsonObject(with: data, options: [])
        print(json)
    }
}
task.resume()

Проблема в том, что я не понимаю, как обработать ошибки, проверить статус-код ответа (например, 200 OK) и корректно распарсить JSON в модель Swift (struct с Codable).

Ожидаю получить пример рабочего кода с использованием async/await (если это возможно в современном Swift) или с замыканиями, который включает: создание запроса, обработку ошибок, проверку HTTP-статуса, декодирование JSON в модель данных. Заранее спасибо за помощь!