[서버][스프링][Kotlin] WebClient의 response를 generics로 매핑하는 방법

프로그래밍/서버2021. 4. 18. 23:32

스프링에서 WebClient의 response를 generics으로 매핑하는 방법을 알아보겠습니다.

generics 관련 정보는 컴파일 단계에서 사라지므로 간단하게 해결되지 않습니다.

더군다나 코틀린으로 하면 조금 더 복잡해 지는 것 같네요.

 

Generics가 없다면 그냥 아래와 같이 사용하면 됩니다.

bodyToMono(ApiResult::class.java)

 

그런데 response가 ApiResult<RoomDto>의 타입이라면 방법을 좀 바꿔야 합니다.

 

java라면

bodyToMono(new ParameterizedTypeReference<ApiResult<RoomDto>>() {})

 

위의 코드를 사용하면 됩니다.

 

코틀린에서는?

bodyToMono(object : ParameterizedTypeReference<ApiResult<RoomDto>>() {})

위와 같이 사용하면 됩니다.

 

object: 부분이 없으면 에러가 발생합니다.

문법이 좀 특이해 보이네요.

 

참고

umbum.dev/925

 

RestTemplate 사용 시 ResponseType으로 generic 타입 받기 (ParameterizedTypeReference)

Response를 받을 때 Generic 타입으로 매핑하여 받고 싶을 때가 있다. ```java DefaultResponseWrapper userInfoResponseWrapper = restTemplate.postForObject( userInfoUrl, new UserInfoRequest("MTA1", "HH_S..

umbum.dev

 

작성자

Posted by 드리머즈

관련 글

댓글 영역