Swift:
Enviando uma requisição HTTP
How to:
No Swift, para enviar uma requisição HTTP, usamos principalmente a classe URLSession. Vou mostrar um exemplo rápido de como buscar um JSON de uma API:
import Foundation
// Defina a URL da requisição
let url = URL(string: "https://api.exemplo.com/dados")!
// Crie a sessão e inicie a tarefa de requisição
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Verifique se houve erro
guard let data = data, error == nil else {
print("Erro na requisição: \(error?.localizedDescription ?? "Unknown error" )")
return
}
// Tente decodificar os dados JSON
do {
if let jsonResult = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] {
print("JSON recebido: \(jsonResult)")
}
} catch let error {
print("Erro ao decodificar JSON: \(error.localizedDescription)")
}
}
task.resume()Executando esse código em um playground ou app iOS, você receberá a resposta (dependendo dos dados da API) como um dicionário de Swift que foi impresso no console.
Deep Dive
Enviar requisições HTTP não é algo novo. Faz parte das bases da web desde seus primórdios. Mas as abordagens e ferramentas para isso no Swift evoluíram. Antigamente, usávamos NSURLConnection, mas ela foi substituída pela mais moderna URLSession.
Outras alternativas incluem bibliotecas de terceiros como Alamofire, que simplificam algumas tarefas mas adicionam dependências externas ao seu projeto.
Os detalhes de implementação importantes incluem a gestão de sessões de rede, tratamento de erros e parsing de dados. Uma consideração crítica é o tratamento de dados sensíveis e a configuração adequada da segurança da requisição, como a utilização de HTTPS.
See Also
Para mais informações, confira: