Alamofire는 Swift 기반의 HTTP 네트워킹 라이브러리입니다.
기본 네트워킹 도구인 URLSession을 보다 쉽고 직관적으로 사용할 수 있도록 래핑한 오픈소스 프레임워크입니다.
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.6.0")
Xcode > File > Add Packages... 에서 위 URL을 입력해 추가 가능
| 기능 | 설명 |
|---|---|
| HTTP 요청 | GET, POST, PUT, DELETE 등 |
| 응답 처리 | JSON, Codable 등 다양한 방식 지원 |
| 에러 처리 | validate()로 상태 코드 및 오류 확인 |
| 파일 업로드 | 단일/다중 파일 업로드 기능 제공 |
| 인증 | 헤더 기반 인증 지원 |
| 비동기 처리 | 클로저 기반 응답 처리 지원 |
import Alamofire
AF.request("https://api.example.com/data")
.validate()
.responseDecodable(of: [Item].self) { response in
switch response.result {
case .success(let items):
print("데이터 개수: \(items.count)")
case .failure(let error):
print("요청 실패: \(error)")
}
}
let parameters = ["username": "test", "password": "1234"]
AF.request("https://api.example.com/login",
method: .post,
parameters: parameters,
encoding: JSONEncoding.default)
.validate()
.responseJSON { response in
print(response)
}
struct User: Codable {
let id: Int
let name: String
}
AF.request("https://api.example.com/user/1")
.responseDecodable(of: User.self) { response in
switch response.result {
case .success(let user):
print("이름: \(user.name)")
case .failure(let error):
print("에러: \(error)")
}
}
Alamofire는 복잡한 네트워크 통신을 간결하고 안정적으로 구현할 수 있도록 도와주는 유용한 라이브러리입니다.
기본 네트워크 기능 이상의 확장된 기능을 제공하여 개발 생산성을 높이는 데 효과적입니다.