2024-12-20 | 技术分享 | UNLOCK

openfeign动态URL

openfeign动态URL

今日收到一个需求,采集好的数据需要发送到不同的后端,这个采集端是物理上只能采集一次的,但是又有dev环境,测试环境和正式环境都需要采集到的数据,因此需要一个采集器配置多个后端地址,但是OpenFeign默认使用方法不能动态修改URL,因此需要使用OpenFeign提供的动态URL配置。

假设目前是这样的一个后端接口:

1
2
3
4
5
6
7
8
9
@FeignClient(name = "dynamic-url-client", url = "${dynamic-url-client.url}")
public interface DynamicUrlClient {

/**
* 测试接口
*/
@PostMapping("/test")
String post(User user);
}

在网上查找了需求,发现openfeign有一个动态URL配置,非常简单,新增一个URI参数即可 修改为下面的接口就可以

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@FeignClient(name = "dynamic-url-client", url = "${dynamic-url-client.url}")
public interface DynamicUrlClient {

/**
* 测试接口
*/
@PostMapping("/test")
String post(User user);

/**
* 修改后的接口
*/
@PostMapping("/test")
String post(URI uri,User user);
}


// 使用方式
@Autowired
DynamicUrlClient dynamicUrlClient;
dynamicUrlClient.post(new URI("http://www.baidu.com"),user);

该方法在使用时会忽略掉默认的URL,使用传入的URI,这里还需要自己处理异常。 over~

评论加载中