我有一个接收HTTP请求的微服务(Java Spring Boot),然后通过HTTP调用REST API调用另一个服务。被调用的服务返回HTTP状态201(无响应正文),但我需要返回HTTP 200和响应正文。
我使用WebClient调用其他服务,对于201状态,我使用的是bodyToMono(Void.class)。那么,如何为我的微服务的客户端返回HTTP 200响应体呢?最佳做法是什么?另外,如何为调用返回HTTP 201的外部服务的服务编写组件测试?
更新:当前代码如下所示:
webClient.builder())
.post()
.uri("/employee")
.body(Mono.just(employee), Employee.class)
.retrieve()
.onStatus(status -> status.equals(HttpStatus.NOT_FOUND), response -> Mono.just(new NotFoundException("404 occurred", HttpStatus.NOT_FOUND.name())))
.bodyToMono(Void.class)
.block();
谢啦
如果我理解你的问题。我想这样解决。
WebClient
.builder()
.build()
.post()
.uri("/employee")
.exchange()
.flatMap(response -> {
return response
.mutate()
.body("success")
.build()
.bodyToMono(String.class);
});