[swift] Swift Moya에서 API 호출하기

Moya는 Swift에서 네트워크 호출을 간편하게 처리할 수 있는 라이브러리입니다. 이번 포스트에서는 Moya를 사용하여 API를 호출하는 방법에 대해 알아보겠습니다.

Moya 설치하기

Moya를 사용하기 위해 먼저 프로젝트에 Moya를 설치해야 합니다. CocoaPods를 사용하신다면 Podfile에 다음과 같이 Moya를 추가합니다.

pod 'Moya'

그리고 터미널에서 pod install 명령어를 실행하여 Moya를 설치합니다.

API 정의하기

Moya를 사용하여 API를 호출하려면 먼저 API에 대한 정의를 작성해야 합니다. 예를 들어, 사용자 정보를 가져오는 API를 호출해보겠습니다.

import Moya

enum UserAPI {
    case getUser(id: Int)
}

extension UserAPI: TargetType {
    
    var baseURL: URL {
        return URL(string: "https://api.example.com")!
    }
    
    var path: String {
        switch self {
        case .getUser(let id):
            return "/users/\(id)"
        }
    }
    
    var method: Moya.Method {
        return .get
    }
    
    var sampleData: Data {
        return Data()
    }
    
    var task: Task {
        return .requestPlain
    }
    
    var headers: [String : String]? {
        return nil
    }
    
}

위의 코드에서 UserAPI는 API 호출을 위한 열거형입니다. TargetType 프로토콜을 구현하여 API에 대한 명세를 작성합니다. baseURL은 API의 기본 URL을, path는 API의 경로를 지정합니다. method는 HTTP 메서드를, task는 API 호출에 필요한 파라미터를 지정합니다.

API 호출하기

Moya를 사용하여 API를 호출하기 위해 Provider 객체를 생성해야 합니다. 생성된 Provider를 사용하여 API를 호출합니다.

import Moya

let provider = MoyaProvider<UserAPI>()

provider.request(.getUser(id: 1)) { result in
    switch result {
    case let .success(response):
        // API 호출 성공 시 처리할 로직
    case let .failure(error):
        // API 호출 실패 시 처리할 로직
    }
}

위의 코드에서 provider는 API 호출을 담당하는 Provider입니다. request 메서드를 사용하여 API를 호출하고, 클로저를 통해 API 호출 결과를 받습니다. 호출 성공 시 성공한 응답을 처리할 로직을, 호출 실패 시 실패한 에러를 처리할 로직을 작성합니다.

결론

이번 포스트에서는 Swift Moya를 사용하여 API 호출하는 방법을 알아보았습니다. Moya는 간편한 사용법과 유연한 설정으로 네트워크 호출을 효율적으로 처리할 수 있는 라이브러리입니다. Moya의 다양한 기능과 옵션을 활용하여 프로젝트에서 효과적으로 API 호출을 구현해보세요.

참고 자료