👉 Alamofire GitHub 바로가기
👉 프로젝트에 Alamofire 추가하기(SPM)
이전 URL Session을 사용하여 작성한 코드를 Alamofire로 작성 해보자.
Query parameters가 포함된 GET 통신
let url: String = "https://reqres.in/api/users"
let parameters: Parameters = ["page" : 2]
AF.request(url, method: .get, parameters: parameters, encoding: URLEncoding.default, headers: nil)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case let .success(data): // 요청 성공
guard let userList: UserListReponse = try? JSONDecoder().decode(UserListReponse.self, from: data) else {
debugPrint("decode 실패")
return
}
debugPrint(userList)
case let .failure(error): //요청 실패
debugPrint(error)
}
}
url: https://reqres.in/api/login
request body :
{ "email": "eve.holt@reqres.in",
"password": "cityslicka" }
let url: String = "https://reqres.in/api/login"
let parameters: Parameters = ["email": "eve.holt@reqres.in",
"password": "cityslicka"]
AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case let .success(data): //요청 성공
guard let loginReponse: LoginResponse = try? JSONDecoder().decode(LoginResponse.self, from: data) else {
debugPrint("decode 실패")
return
}
debugPrint(loginReponse)
case let .failure(error): //요청 실패
debugPrint(error)
}
}
👉 훨씬 더 깔끔해진 모습을 확인할 수 있다.