问题标签 [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.

0 投票
1 回答
12333 浏览

java - 如何在 Spring Boot 应用程序的 Feign 客户端上使用 WireMock?

我有一个使用 Feign 客户端的课程。以前我使用 Mockito 并为 Feign 客户端中的每个方法调用提供一个存储的响应。现在我想使用 WireMock,这样我就可以看到我的代码正确处理了不同类型的响应代码。我该怎么做呢?我不知道如何在测试中连接我的 Feign 客户端,并连接它以便它使用 Wiremock 而不是我在application.yml文件中设置的 URL。任何指针将不胜感激。

0 投票
2 回答
5371 浏览

spring-cloud - 如何在不知道所有名称的情况下将任意数量的标头传递给 Feign 客户端?

我有一个用例,我需要将所有以某个前缀开头的标头传递给 feign 客户端。我不知道这些标题的数量或确切名称。似乎没有一种方法可以轻松地做到这一点,因为 Feign 客户端希望所有标头都使用@RequestHeader("name"). 它似乎不支持类似的东西@RequestHeader HttpHeaders,这将非常有用。有什么建议么?

0 投票
2 回答
694 浏览

spring-boot - 如何在 Spring Boot 应用程序中启动 Web 应用程序后的那一刻自动初始化“dispatcherServlet”?

我正在使用 hystrix 在 Spring Boot 应用程序中使用 feign 客户端。我启动了一个 eureka 服务器并注册了两个提供程序。在 feign 客户端应用程序中,我添加了 hystrix 支持。当我第一次请求服务时,我得到了 hystrix 结果,但之后每个请求都可以从提供者那里得到预期的结果。从日志中,我看到dispatcherServlet在第一次请求后被延迟初始化,而不是在网络应用程序启动后。这扩展了 hystrix 的超时跨度。在这种情况下,我总是在第一次请求时得到错误的结果,因为dispatcherServlet.

  1. 我怎样才能正确获得第一个请求?
  2. dispatcherServet可以在网络启动后的那一刻进行初始化吗?如果是这样,我该怎么做?

日志:

谢谢。

0 投票
1 回答
1418 浏览

java - Feign Hystrix 命令名称不起作用

如果我只是将 Hystrix 命令定义为类,我可以控制定义组键和命令键,如下所示。

所以对于上面的代码组key是MyHystrixGroup,Command Key是MyHystrixCommand。

如果我想设置这个 hystrix 命令的任何配置,我可以这样做

默认情况下,

现在当我使用 Feign Hystrix 时,我没有定义命令名/组名。根据此处的文档,组键与目标名称匹配,命令键与日志键相同。

所以如果我有这样的 FeignClient,

我在工厂类中创建了我的 Feign 客户端的实例。

正如您在返回客户端之前看到的,我想设置我的 hystrix 命令的超时配置。

我正在使用 MockWebServer 对其进行测试。

这仅在我在默认 hystrix 参数 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 上设置超时时才有效

这没有用。同样,我尝试了以下值,但没有一个起作用。

0 投票
2 回答
47801 浏览

java - 如何向 feign 客户端添加请求拦截器?

我希望每次通过 feign 客户端发出请求时,都为经过身份验证的用户设置一个特定的标头。

这是我的过滤器,我从中获取身份验证并将其设置为 spring 安全上下文:

这是我的假客户:

在这里我有一个请求拦截器:

我不知道如何为我的客户端配置此拦截器以及如何使用用户名和密码设置标头。我怎样才能做到这一点?

0 投票
2 回答
1810 浏览

java - 自动将请求正文对象编码为 JSON

我正在使用 OpenFeign/feign 发送 API 请求:

@Body("{bulk}")不起作用,因为它将对象转换为字符串:

有没有办法自动将对象转换为 JSON 对象?

这就是我构建的方式Feign.Builder

0 投票
1 回答
953 浏览

java - 我是否通过将可观察对象转换为阻塞可观察对象来滥用 rxJava?

我的 API 对两个独立的服务进行了大约 100 次成对的下游调用。所有响应都需要汇总,然后我才能将响应返回给客户。我使用 hystrix-feign 进行 HTTP 调用。

我想出了我认为是一个优雅的解决方案,直到在rxJava 文档上我发现了以下内容

BlockingObservable 是提供阻塞操作符的各种 Observable。它可以用于测试和演示目的,但通常不适合生产应用程序(如果您认为需要使用 BlockingObservable,这通常表明您应该重新考虑您的设计)。

我的代码大致如下

基于此设置的几个问题:

  1. 鉴于我的用例,toBlocking() 是否合理
  2. 我是否正确理解在主线程到达 forEach() 之前不会进行实际的 HTTP 调用
  3. 我已经看到 forEach() 块中的代码由不同的线程执行,但我无法验证 forEach() 块中是否可以有多个线程。那里的执行是并发的吗?
0 投票
2 回答
14914 浏览

java - SpringBoot:使用 SSL 的 FeignClient (p12)

我正在尝试为一个使用 SSL 的外部 HTTP API 创建一个 FeignClient。斗争是 - 如何用我的逻辑修改默认的 Spring FeignClient,在这种情况下是 SSL Connection Factory。所以基本上我想保留 Spring 自动为 FeignClients 做的所有好事,比如 Hystrix、Sleuth 跟踪等,并让它与我的 SSL 工厂一起工作。

将不胜感激任何建议。


这是我试图做的:

我尝试在 ComponentScan 之外提供自定义 @Configuration:

通过注解让 FeignClient 使用

其中“TrustingSSLSocketFactory”的实现与类似。

现在,如果我在 Spring 应用程序中注入我的客户端,我可以看到“feignBuilder”被调用并且它成功加载了我的密钥。问题是创建的客户端实际上并未将指定的 SSLFactory 用于 createSocket 调用。所以我得到:

0 投票
0 回答
573 浏览

spring-cloud - 使用 Spring Cloud Brixton SR7 的 Feign 客户端

我正在尝试将 Feign Client 与新的 Spring Cloud 版本(Brixton.SR7)一起使用,但我遇到了问题。

每次我尝试对 Eureka Server 中的注册服务进行 REST 调用时,都会遇到异常:

我的主要课程是使用 @EnableFeignClients 启用 FeignClients。

有我的项目依赖项:

使用旧的 Spring Cloud 版本(Brixton.SR6)运行正常。

我应该添加一些依赖 RxJava 吗?

编辑:

SR6 依赖树:

SR7 依赖树:

谢谢!

0 投票
2 回答
26022 浏览

spring - 如何在 FeignClient 中使用多个查询字符串参数调用 url?

我尝试使用多个查询字符串参数调用 Google API。奇怪的是,我找不到办法做到这一点。

这是我的 FeignClient :

问题是 '&' 的字符RequestMapping value被替换为&

如何避免这种情况?

谢谢 !