Package 

Object HttpResponse.Companion

    • Method Detail

      • valueOf

         final <T extends Any> Flow<HttpResponse<T>> valueOf(SuspendFunction0<Response<T>> call)

        Response를 반환하는 메서드를 전달받아 HttpResponse 타입의 Flow로 변환합니다.

        Parameters:
        call - Response타입의 반환 값을 전달받아야만 합니다.
      • valueOfWithEmpty

         final <T extends Any> Flow<HttpResponse<Unit>> valueOfWithEmpty(SuspendFunction0<Response<T>> call)

        Response를 반환하는 메서드를 전달한 뒤, Unit을 포함한 HttpResponse 타입의 Flow로 변환합니다. Response에 상관 없이, Unit을 반환하고 싶은 경우에 사용할 수 있습니다.

        예를 들어, HEAD 메서드와 같이 특정한 반환 값이 없는 경우 사용합니다.

        interface MockService {
            @HEAD("mock")
            suspend fun head(): Response<Void>
        }

        서비스가 위와 같이 정의되었다고 가정 하였을 때, HttpResponse 인터페이스를 생성하는 방법은 아래와 같습니다.

        val response = HttpResponse.createEmpty { networkResponse }
      • valueOfWithNull

         final <T extends Any> Flow<HttpResponse<T>> valueOfWithNull(SuspendFunction0<Response<T>> call)

        Nullable한 Response를 반환하는 메서드를 전달받아 HttpResponse 타입의 Flow로 변환합니다.

        Parameters:
        call - Response형태의 반환 값을 전달받아야만 합니다
      • to

         final <Dto extends BaseDto<Model>, Model extends Any> Result<Model> to(HttpResponse<Dto> httpResponse)

        BaseDto를 포함하고 있는 HttpResponse 타입을 Result로 변환합니다. 추가적인 매핑 과정이 없는 상황에서 네트워크 레이어의 DTO 데이터를 빠르게 도메인 모델로 변경 하고자 할 때 사용합니다.

      • toWithList

         final <Dto extends BaseDto<Model>, Model extends Any> Result<List<Model>> toWithList(HttpResponse<List<Dto>> httpResponse)

        BaseDto를 포함하고 있는 HttpResponse 리스트 타입을 Result 리스트로 변환합니다. 추가적인 매핑 과정이 없는 상황에서 네트워크 레이어의 DTO 데이터를 빠르게 도메인 모델로 변경 하고자 할 때 사용합니다.

      • to

         final <In extends Any, Out extends Any> Result<Out> to(HttpResponse<In> httpResponse, Function1<In, Out> mapper)

        HttpResponse 타입을 Result로 변환합니다.

        Parameters:
        mapper - 어떠한 방식으로 변환할 지에 대한 매퍼 람다식을 정의합니다.