用 feign 有没有好用的挡板工具呢?

2019-01-05 22:07:49 +08:00
 wmhack

项目用的 feign,对接第三方接口时,经常遇到对方接口出错。所以想在 feign 进出的时候,做一个挡板,挡板开关打开时,就执行挡板 mock 的代码直接返回。

1862 次点击
所在节点    问与答
2 条回复
feiyuanqiu
2019-01-06 20:02:59 +08:00
有个不完善的方案:

1. 新增一个挡板配置(@Configuration ),用于提供挡板 feign-client。设置这个 bean 优先级为 @Primary,同时设置只有在指定的属性存在时才生效

@Configuration
public class FeignStubConfig {

@Bean
@Primary
@ConditionalOnProperty("use-feign-client-stub")
public UserClient userClient() {
return id -> new User(id, "test");
}
}


2. 配置 @FeignClient 的 primary=false,否则在挡板配置生效时,会与挡板 feign-client 冲突

@FeignClient(value = "user-v1", primary = false)
public interface UserClient {

@GetMapping("/users/{id}")
User get(@PathVariable("id") String id);
}


3. 启动应用时指定使用挡板( java -jar app.jar --use-feign-client-stub )
wmhack
2019-01-06 20:50:08 +08:00
@feiyuanqiu 非常感谢,这个方案很棒。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524257

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX