Avatar ·

Como fazer uma requisição HTTP em Swift?

Olá a todos! Por favor, me digam como executar corretamente uma requisição HTTP em Swift para aplicativos iOS/macOS. Sou novo no desenvolvimento para Apple e ainda não entendo completamente qual abordagem é considerada atual.

Preciso enviar uma requisição GET para uma API REST pública (por exemplo, obter uma lista de usuários) e processar a resposta no formato JSON. Tentei usar o antigo URLSession com delegates, mas o código fica volumoso e difícil de entender. Também encontrei bibliotecas de terceiros como Alamofire, mas gostaria de primeiro entender as ferramentas nativas.

Aqui está um exemplo do meu código atual, que não funciona corretamente (erro ao decodificar 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()