[swift] Swift Moya에서 헤더 인증 처리하기

Swift에서 Moya 라이브러리를 사용하여 API 통신을 할 때, 특정 API에 대해서는 인증 헤더를 추가해야 할 수도 있습니다. 이번 블로그에서는 Swift Moya를 사용하여 API 통신을 할 때 헤더 인증 처리하는 방법에 대해 알아보겠습니다.

1. Moya의 Provider 생성

Moya를 사용하기 위해서는 먼저 Moya Provider를 생성해야 합니다. Provider는 API를 호출하는 데 필요한 설정들을 가지고 있습니다. 아래와 같이 Provider를 생성할 수 있습니다.

import Moya

let provider = MoyaProvider<YourAPIService>()

YourAPIService는 Moya의 TargetType 프로토콜을 준수하는 API 서비스를 의미합니다. API 서비스에서는 API의 엔드포인트 URL, HTTP 메서드, 헤더 및 파라미터를 정의합니다.

2. Request에 헤더 추가

인증 헤더를 추가하기 위해서는 Moya의 endpointClosure 속성을 활용해야 합니다. endpointClosure는 Request를 생성하기 전에 호출되는 클로저입니다. 클로저에서 원하는 헤더를 추가할 수 있습니다.

let provider = MoyaProvider<YourAPIService> { (target: YourAPIService) -> Endpoint in
    let defaultEndpoint = MoyaProvider.defaultEndpointMapping(for: target)
    return defaultEndpoint.adding(newHTTPHeaderFields: ["Authorization": "Your Auth Token"])
}

위의 코드에서는 Authorization 헤더에 “Your Auth Token” 값을 설정하고 있습니다.

3. API 호출

이제 헤더가 추가된 Provider를 사용하여 API를 호출할 수 있습니다.

provider.request(.yourAPI) { (result) in
    switch result {
    case let .success(response):
        // API 호출 성공 처리
    case let .failure(error):
        // API 호출 실패 처리
    }
}

위의 예제에서 yourAPIYourAPIService에서 정의한 API의 엔드포인트를 의미합니다.


헤더 인증 처리는 Moya를 사용하여 API 통신을 할 때 많이 사용되는 패턴 중 하나입니다. 인증 헤더를 추가하여 보안을 강화하고, 복잡한 인증 로직을 간편하게 처리할 수 있습니다.