我正在尝试合并2个或更多的服务,我想检查它们的状态,并返回自定义响应。例如,其中一个返回200,另一个返回500、404、400等等。在本例中,我想返回空列表。以下示例仅在所有服务返回200时有效
@RestController
@RequiredArgsConstructor
public class Demo3Controller {
private final Demo1Client demo1Client;
private final Demo2Client demo2Client;
@GetMapping("/demo3")
public String get(){
return demo1Client.getDemo1() + "&&" + demo2Client.getDemo2();
}
}
2条答案
按热度按时间okxuctiv1#
feign也可以返回整个响应(responseentity),而不是body对象。因此,您可以像这样重构您的假客户机:
之后,您可以通过以下方式获取状态代码和正文:
myzjeezk2#
或者,您可以捕获具有状态代码的feignexception对象,并返回正确的响应对象或Map到显式错误代码的新异常。对于任何4xx或5xx返回,都将抛出该异常。请参见此处的文档:https://appdoc.app/artifact/io.github.openfeign/feign-core/9.3.0/feign/feignexception.html