首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何实现feign客户端的状态检查?

如何实现feign客户端的状态检查?
EN

Stack Overflow用户
提问于 2021-04-19 19:02:14
回答 2查看 97关注 0票数 0

我正在尝试组合2个或更多服务,我想检查它们的状态并返回自定义响应。例如,其中一个返回200,另一个返回500、404、400等等。在这种情况下,我想返回空列表。以下示例仅在所有服务返回200时有效

代码语言:javascript
运行
复制
@RestController
@RequiredArgsConstructor
public class Demo3Controller {

    private final Demo1Client demo1Client;
    private final Demo2Client demo2Client;

    @GetMapping("/demo3")
    public String get(){
        return demo1Client.getDemo1() + "&&" + demo2Client.getDemo2();
    }

}
EN

回答 2

Stack Overflow用户

发布于 2021-04-19 19:42:40

Feign还可以返回整个响应(ResponseEntity),而不是body对象。所以,你可以像这样重构你的Feign客户端:

代码语言:javascript
运行
复制
@FeignClient
public interface Demo1Client {
    
    public ResponseEntity<String> getDemo1();
}

之后,您可以通过以下方式获取状态码和正文:

代码语言:javascript
运行
复制
ResponseEntity<String> response = demo1Client.getDemo1();
response.getStatusCodeValue();
response.getBody();
票数 1
EN

Stack Overflow用户

发布于 2021-04-20 16:45:40

或者,您可以捕获具有状态代码的FeignException对象,并返回正确的响应对象或映射到显式错误代码的新异常。对于任何4XX或5XX返回,都会抛出该异常。请参阅此处的文档:https://appdoc.app/artifact/io.github.openfeign/feign-core/9.3.0/feign/FeignException.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67160750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档