如何解决Feign - 使用单一配置但指定应该注入什么 bean
我正在使用 FeinClient 向外部服务发出 http 请求,但我需要创建 2 个不同的假客户端,因为它们根据请求使用不同的标头:
- 在身份验证请求中,它使用标头“Authorization Basic ...”
- 在其他请求中,它使用标头“Authorization Bearer ...”
为了实现它,我创建了 2 个具有不同配置的 feign 客户端:
class FBAuthFeignConfiguration () {
@Bean
fun basicAuthRequestInterceptor() = BasicAuthRequestInterceptor("admin","admin")
}
class WhatsAppFeignConfiguration {
@Bean
fun requestInterceptor(): RequestInterceptor {
return RequestInterceptor {
it.header("Authorization","Bearer ...")
}
}
}
我的客户:
@FeignClient(name = "FBAuthRepository",url = "\${fb.url}",configuration = [FBAuthFeignConfiguration::class])
interface FBAuthRepository {
@PostMapping(value = ["/login"],produces = ["application/json"])
fun login(): Login
}
@FeignClient(name = "FBRepository",configuration = [FBFeignConfiguration::class])
interface FBRepository {
@PostMapping(
value = ["/v1/any"])
fun anyUrl(@RequestBody payload: String): Response
}
有什么方法可以指定何时使用标题或其他?我不喜欢同一个域有多个客户端的想法,我也不确定这是否是使用 Feign 的模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。