1

我在我的休息控制器中调用一个微服务。当微服务成功响应时,它工作正常,但如果有一些错误响应,我无法将错误响应传递回用户。下面是示例代码。

 @GetMapping("/{id}/users/all")
public Mono<Employee> findAllProfiles(@PathVariable("id") UUID organisationId,
                                           @RequestHeader(name = "Authorization", required = false) String oauthJwt) {
    return webClient.get().uri(prepareUrl("{id}/users/all"), organisationId)
            .header("Authorization", oauthJwt).accept(MediaType.APPLICATION_JSON)
            .exchange().then(response -> response.bodyToMono(Employee.class));
}

现在,如果有任何带有错误代码的 JSON 响应,则 Web 客户端不会将错误响应传递给控制器​​,因此不会将任何信息传播给 api 最终用户。

4

1 回答 1

0

您应该能够从Mono API 链接方法。查找“onError”以查看许多选项,这些选项允许您定义出现错误时的行为。

例如,如果您想返回一个“空”员工,您可以执行以下操作:

.exchange()
.then(response -> response.bodyToMono(Employee.class))
.onErrorReturn(new Employee());
于 2017-05-25T21:25:38.423 回答