Sar*_*oev 6 spring spring-boot spring-webflux
我有以下代码从另一个服务获取用户详细信息。
ParameterizedTypeReference<SuccessResponse<<User>> userTypeReference = new ParameterizedTypeReference<>() {}
User user = webClient.get()
.uri("url")
.retrieve()
.onStatus(HttpStatus::is4xxClientError, response -> Mono.empty())
.bodyToMono(userTypeReference)
.onErrorResume(e -> Mono.empty())
.doOnError(e -> logger.error("Error on fetching user details {}", e))
.map(response -> response.getData())
.block();
Run Code Online (Sandbox Code Playgroud)
该服务的响应如下所示:
{
"status": "success",
"data": {
"name": "John",
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果data元素不可用,映射将返回 null 并抛出block()错误java.lang.NullPointerException: The mapper returned a null value。
我知道我们可以nullPointerException在映射期间处理并返回new User对象(如果数据对象为空)。但我不想得到一个空的对象。有什么方法可以使用 来获取空值吗block()?
| 归档时间: |
|
| 查看次数: |
9502 次 |
| 最近记录: |