问题标签 [feign]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - spring boot - 假装客户端发送基本授权标头| 将 jwt 令牌从一个微服务传递到另一个微服务
我正在使用 spring boot 创建一个基于微服务的项目。我使用 eureka 服务器进行服务发现和注册,还使用 JWT 进行身份验证以进行授权和身份验证。每个微服务都有 jwt 验证,并且在控制器上实现了全局方法安全性,我正在使用 feign 客户端进行微服务间调用。
服务 - 1) 主请求服务 2) 审批服务;
审批者服务正在调用主服务以调用只能由 ADMIN 访问的方法,但是当在主请求服务端处理 jwt 验证时..我只能在标头中看到基本授权标头。
我正在从我的审批者服务 Feign 客户端在审批者服务中传递 JWT 令牌
从请求中读取标头的代码
在调试此过滤器时,我在主请求服务中调试时在控制台标头上打印了令牌
那么可以获得有关如何将我的 JWT 令牌从一个微服务传递到另一个微服务的帮助?
java - 是否可以在 Feign 客户端上使用 Spring @Cache*?
我有一个从微服务请求令牌的 Feign 客户端。由于我正在进行多次调用,我想缓存从 Feign 客户端收到的响应并使用 Spring Guava 缓存,但它似乎不起作用。我所拥有的只是 Feign 客户端上的配置类和注解。
我在堆栈溢出的某个地方读到 Feign 可能不支持 @Cacheable 注释。这是真的?
spring-boot - 使用带有 Feign jaxrs @Path 的 Spring 属性占位符
我正在尝试使用 jaxrs 合同解决 Feign 接口上的 Spring 占位符:
但是发现只有server.url
通过SpringBoot的占位符填充机制才能解决。${server.querypath}
未解析并GET
作为文字值给出。
有人这样做吗?我应该打开功能请求吗?感谢您的回答。
java - 在现有 FeignClient 界面中使用自定义客户端,具有相同的目标 URL
我有一个带有注释的现有界面@FeignClient
:
它有一堆可以正常工作的方法。
现在,我需要添加一个不适合简单@FeignClient 的方法。而且我不希望我的其余代码知道这一点,并且不得不使用 FeignRemoteService 以外的另一个类来解决这个用例,所以我想让它适合现有的 FeignRemoteService 以便它对使用的类是透明的它。
用例是每次调用该方法时我都需要传递不同的凭据。为此,我创建了一个默认界面,在其中放置了我的自定义代码:
和客户端的接口:
它有效,但我对解决方案不满意,因为它非常丑陋......我还没有找到一种很好的方法将myRemoteService.url注入到我构建的自定义 Feign 客户端中,而不是在离我的代码更近的地方GlobalProperties 类中的静态变量。
有没有更好的方法来做到这一点,以便myRemoteService.url可以注入两次:
- 在
@FeignClient
- 这里没有问题。 - 在自定义 Feign 客户端中,内置在默认方法中。
如果有完全不同的方法,我也持开放态度,只要一切都在同一个服务中,这样消费者就会隐藏差异。
spring-boot - 如何使用 Feign Client 上传 multipart 文件?
我必须打电话将文件上传到以下服务:-
截至目前,我正在使用 RestTemplate 调用此服务,但现在我需要将 RestTemplate 调用转换为 Feign Client。
我正在尝试使用 feign 完成多部分文件上传,但我似乎无法在任何地方找到一个很好的例子。
java - 如何阻止 feign 引用和转义字符串数据
我有一个代理,它位于使用 json 对象进行通信的客户端和服务器之间。代理需要将数据作为字符串处理。它不知道它只需要扫描数据以查找字符串的类型。问题是当我将数据从代理转发到服务器时,字符串被引用并且字符串中的引号被转义。我需要按原样发送字符串。
字符串是
但在帖子的正文中
无论内容类型设置为什么,都会发生这种情况。
无论如何我可以使用 feign 发布一个字符串而不会被 qouted 吗?
spring-cloud - 如何在 Spring Cloud 中禁用功能区并仅使用 FeignClient
我知道我们可以通过提供 url Ex 来强制 FeignClient 使用 OkHttp 而不是 Ribbon。@FeignClient(url="serviceId", name="serviceId")
即使只提供了名称,我也希望使用 OkHttpClient。前任。@FeignClient(name="serviceId")
根据 spring cloud 文档“如果启用了 Ribbon,它是一个 LoadBalancerFeignClient,否则使用默认的 feign 客户端。”
如何禁用功能区以便使用默认的 feign 客户端。
java - spring 如何在@feignclient 配置中设置自定义最大连接池大小
如何@feignclient
在 spring 配置中设置自定义最大连接池大小,
java - netflix.feign 和 openfeign 的区别
介绍
我最近使用了 netflix feign 以及非常有用的功能区。
一个例子是:
但是,在某些时候,我认为不必手动编写所有这些定义(对于现有的 web 服务),我应该看看是否存在工具。
我偶然发现了https://github.com/swagger-api/swagger-codegen
一些生成客户端的示例,例如https://github.com/swagger-api/swagger-codegen/tree/master/samples/client/petstore/java/feign。
但是,当我仔细查看进口商品时,我注意到以下内容:
import feign.Feign;
另一方面,Netflix 的开源解决方案具有包名称:
org.springframework.cloud.netflix.feign
.
此外,我注意到两者都使用功能区(如果可用),但 Netflix 的符号更清晰,在后台发生了很多事情。例如@FeignClient
注释类 javadoc 状态:
- 接口的注释声明应该创建具有该接口的 REST 客户端(例如,用于自动装配到另一个组件中)。如果功能区可用,它将用于 * 用于负载平衡后端请求,并且负载平衡器可以配置 * 使用
@RibbonClient
与 feign 客户端相同的名称(即值)。
但是在Feign.feign
文档中(在https://github.com/OpenFeign/feign)我看到:
RibbonClient 覆盖了 Feign 客户端的 URL 解析,增加了 Ribbon 提供的智能路由和弹性能力。
集成要求您将功能区客户端名称作为 url 的主机部分传递,例如 myAppProd。
所以我的问题是:
- 两者的历史/关系和区别是什么?
- 各自的优缺点是什么?
他们是完全不同的项目,没有关系,还是 netflix 只是分叉/利用 OpenFeign 并将其修改为在他们的集成云解决方案中?本质上,Netflix 是否只是从开源项目中获取并整合了 Discovery、ribbon 和 feign 等不同的技术?
spring - 使用 Swagger 生成 Netflix Feign 代码
我找到了项目https://github.com/swagger-api/swagger-codegen。
但是,这会生成一个基于 OpenFeign 的客户端。
有没有办法自动生成使用 Netflix 的 feign 注释和请求映射的客户端接口?
例子:
与以下课程相反:
谢谢