Swift Moya는 Alamofire를 기반으로 한 네트워킹 라이브러리로, 간편한 API 요청 및 응답 처리를 제공합니다. 이 라이브러리를 사용하여 서버에서 보호된 API를 호출하려면, 토큰 기반의 인증을 사용해야 할 수 있습니다. 이 글에서는 Swift Moya에서 인증 플러그인을 사용하는 방법에 대해 살펴보겠습니다.
1. MoyaProvider 생성
먼저, 인증 플러그인을 사용하기 위해 MoyaProvider
를 생성해야 합니다. MoyaProvider
는 Alamofire Session
인스턴스에 기본값을 제공하는 클래스입니다. 아래와 같이 MoyaProvider
를 생성합니다.
let provider = MoyaProvider<YourAPI>(plugins: [YourAuthenticationPlugin()])
여기서 YourAPI
는 Moya에서 사용할 API 타겟을 나타내는 enum이고, YourAuthenticationPlugin()
은 사용자 정의 인증 플러그인입니다.
2. 인증 플러그인 구현
인증 플러그인은 Moya.PluginType
프로토콜을 구현하는 클래스입니다. 이 프로토콜은 prepare(_:target:)
메서드를 요구합니다. 아래는 인증 플러그인의 예시입니다.
import Foundation
import Moya
class YourAuthenticationPlugin: PluginType {
func prepare(_ request: URLRequest, target: TargetType) -> URLRequest {
guard let token = YourAuthManager.shared.getToken() else {
return request
}
var mutableRequest = request
mutableRequest.addValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
return mutableRequest
}
}
위의 예시 코드에서는 YourAuthManager
클래스를 통해 토큰을 가져온 후, Authorization
헤더에 토큰을 추가하여 URLRequest
를 수정하는 작업을 수행합니다.
3. API 호출
이제 인증 플러그인을 사용하는 API 호출을 수행할 수 있습니다. provider
를 사용하여 Moya 타겟을 호출하면, 요청 시 자동으로 인증 플러그인이 적용됩니다.
provider.request(.getYourData) { result in
switch result {
case let .success(response):
// API 호출 성공 시 처리
// response에서 데이터 추출
case let .failure(error):
// API 호출 실패 시 처리
// 에러 처리 로직
}
}
위의 예시 코드에서는 provider.request
를 사용하여 .getYourData
API를 호출하고, 요청 결과에 따라 성공 및 실패 처리를 수행합니다.
마치며
위의 단계를 따라서 Swift Moya에서 인증 플러그인을 사용하는 방법을 배웠습니다. 인증 플러그인을 통해 보호된 API에 쉽게 접근할 수 있으며, 앱의 보안과 효율성을 향상시킬 수 있습니다.