[swift] Swift Moya에서 상태 코드 확인하기

Moya는 Swift에서 네트워크 작업을 쉽게 처리할 수 있도록 도와주는 라이브러리입니다. 네트워크 요청 및 응답을 처리하기 위해 Moya를 사용하는 경우, 상태 코드를 확인하는 것은 매우 중요합니다. 이 글에서는 Swift Moya에서 상태 코드를 확인하는 방법에 대해 알아보겠습니다.

1. Moya의 Response 처리하기

Moya에서 네트워크 요청을 보내고 응답을 받은 후에는 Response 타입의 객체를 받게 됩니다. 이 Response 객체에는 네트워크 응답에 대한 다양한 정보가 포함되어 있습니다.

예를 들어, 다음은 Moya를 사용하여 네트워크 요청을 보내고 응답을 받는 간단한 예제입니다.

provider.request(.getUser(userId: 1)) { result in
    switch result {
    case .success(let response):
        // 응답을 처리하는 로직
    case .failure(let error):
        // 에러 처리 로직
    }
}

위의 코드에서, response 매개변수는 Moya의 Response 타입입니다.

2. 상태 코드 확인하기

Moya의 Response 객체는 상태 코드를 나타내는 statusCode 프로퍼티를 포함합니다. 이 프로퍼티를 사용하여 응답의 상태 코드를 확인할 수 있습니다.

provider.request(.getUser(userId: 1)) { result in
    switch result {
    case .success(let response):
        let statusCode = response.statusCode // 상태 코드 확인
        if 200...299 ~= statusCode {
            // 성공적인 응답 처리
        } else {
            // 오류 응답 처리
        }
    case .failure(let error):
        // 에러 처리 로직
    }
}

위의 코드에서, statusCode를 사용하여 응답의 상태 코드를 확인하고, 해당 코드가 200…299 범위에 속하는지 확인합니다. 이 범위에 속하는 상태 코드는 성공적인 응답을 나타냅니다.

3. 상태 코드에 따른 처리

Moya를 사용하여 응답의 상태 코드를 확인한 후, 이에 따른 처리를 수행할 수 있습니다. 예를 들어, 성공적인 응답일 때는 응답 데이터를 파싱하고, 오류 응답일 때는 에러를 처리하는 등의 작업을 수행할 수 있습니다.

provider.request(.getUser(userId: 1)) { result in
    switch result {
    case .success(let response):
        let statusCode = response.statusCode
        if 200...299 ~= statusCode {
            // 성공적인 응답 처리
            if let data = response.data {
                // 데이터 파싱
            }
        } else {
            // 오류 응답 처리
            if let error = response.error {
                // 에러 처리
            }
        }
    case .failure(let error):
        // 에러 처리 로직
    }
}

위의 코드에서, 성공적인 응답일 때는 response.data를 사용하여 데이터를 파싱하고, 오류 응답일 때는 response.error를 사용하여 에러를 처리하는 로직을 수행합니다.

참고 자료