O que retorna o enum?
enum RequestError: Error { case invalidURL case errorRequest(error: String) }
o invalidURL, retorna algo? É padrão do Swift?
Como saber o que passar como parâmetros?
let(data, _) = try await URLSession.shared.data(for: request)
O que retorna o enum?
enum RequestError: Error { case invalidURL case errorRequest(error: String) }
o invalidURL, retorna algo? É padrão do Swift?
Como saber o que passar como parâmetros?
let(data, _) = try await URLSession.shared.data(for: request)
Olá, Gisele! Como vai?
O enum RequestError que você mencionou é uma forma de representar diferentes tipos de erros que podem ocorrer durante uma requisição HTTP. No Swift, enums são usados para definir um conjunto de valores relacionados, e quando um enum adota o protocolo Error, ele pode ser usado para representar erros.
enum RequestError: Error {
    case invalidURL
    case errorRequest(error: String)
}
invalidURL: Este caso do enum não retorna nada por si só. Ele é usado para indicar que a URL fornecida é inválida. Não é um padrão do Swift, mas sim uma convenção que você ou a equipe de desenvolvimento pode definir para lidar com URLs inválidas.
errorRequest(error: String): Este caso do enum permite que você associe uma mensagem de erro específica (do tipo String) ao erro de requisição, o que pode ser útil para depuração ou para fornecer feedback ao usuário.
Para saber o que passar como parâmetros, você deve considerar o contexto em que o erro ocorre. Por exemplo, se você tentar criar uma URL a partir de uma string e falhar, você pode retornar RequestError.invalidURL. Se uma requisição falhar por outro motivo, você pode usar RequestError.errorRequest e passar uma mensagem de erro descritiva.
No seu código, quando você faz a requisição com URLSession.shared.data(for: request), você está usando try e await porque essa função pode lançar erros e é assíncrona. Caso ocorra um erro, ele será capturado e poderá ser tratado como um dos casos do seu enum RequestError.
Espero ter ajudado!
Siga firme nos seus estudos e conte com o fórum sempre que precisar!
Abraços :)
Obrigada, então poderia ser qualquer outro nome no enum, é somente para identificar? Não sei se ficou muito claro, mas era essa parte let(data, _), isso é porque URLSession pede esses dois parametros?
Olá, Gisele, como vai?
Exatamente! No enum RequestError, os nomes dos casos (invalidURL e errorRequest) são definidos por você ou pela equipe de desenvolvimento para identificar os diferentes tipos de erros. Você poderia dar outros nomes, desde que sigam a convenção e façam sentido no contexto. Eles são como rótulos que facilitam a identificação e o tratamento de erros no código.
Sobre o trecho let(data, _), ele está relacionado ao retorno da função URLSession.shared.data(for: request). Essa função retorna uma tupla contendo dois valores:
Por exemplo, se você quisesse acessar os metadados, poderia fazer assim:
let (data, response) = try await URLSession.shared.data(for: request)
Se precisar de mais alguma explicação, é só avisar! Espero ter ajudado!
Abraços :)