假客户端支持可选请求参数吗?
例如,我有一个endpoint,但我没有找到一种方法,可以使用feign client使param1成为可选的。
@GetMapping(path = "endpoint1")
ResponseEntity request(@RequestParam(name = "param1", required = false, defaultValue = "key") String param1){}
通过创建一个自定义的FeignFormatterRegistrar
,我设法将可选的请求参数与Feign一起使用。代码如下:
package feignformatters;
import org.springframework.cloud.openfeign.FeignFormatterRegistrar;
import org.springframework.format.FormatterRegistry;
import org.springframework.stereotype.Component;
import java.util.Optional;
@Component
public class OptionalFeignFormatterRegistrar implements FeignFormatterRegistrar {
@Override
public void registerFormatters(FormatterRegistry registry) {
registry.addConverter(
Optional.class,
String.class,
optional -> {
if (optional.isPresent())
return optional.get().toString();
else
return "";
});
}
}
以下客户端开始使用项目中加载的前一个组件进行良好的工作:
@FeignClient("book-service")
public interface BookServiceClient {
@GetMapping("/books")
public List<Book> getBooks(
@RequestParam("page") Optional<Integer> pageNum,
@RequestParam("size") Optional<Integer> pageSize,
@RequestParam("reader") Optional<Long> readerId);
}
我对假装很陌生。今天就发现吧……当我读到Spring Cloud Feign时,我的第一个问题是:“您如何包装您的Fiign客户机?” 我举个例子。假设我们有2个微服务M1和M2。M2使用来自M1的endpoint。 null 也许我完全错了,请指正。 多谢!拜拜
我有一个带有spring后端的Vue.js应用程序,它通过一个虚假的客户端向一个“订单”微服务打电话。我有许多使用@PathVariable运行良好的GET请求,但我有一个GET请求,它可以传递任意数量的不同URL参数,并且定义了一个OrderListItemParameters类并将其添加到GET请求中,以便将这些参数传递给微服务。我可以看到请求正在发送到微服务,但它被拒绝,出现了“org.za
我有一个这样的假客户机,它的endpoint指向来自PROJECT-SERVICE的两个API 我最初以为下游的微服务(本例中为PROJECT-SERVICE)可能出了问题,但事实并非如此。事实上,当调用或时,PROJECT-SERVICE实际上执行了该作业,并返回状态分别为和的,但我的回退是用激活的。 我在徒劳地寻找是什么引起了这个问题。 然而,我在我的主要应用程序配置中有以下内容: 谢谢Sri
客户端的HTTP/HTTPS请求。 进程:主进程 ClientRequest是由EventEmitter来实现Writable Stream new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth
使用Spring云合同验证生产者和消费者之间的合同。在我的消费者控制器中,我正在使用Feign client调用另一个微服务方法来获取一些数据。但是现在在SpringCloud contract中,为这个微服务进行存根调用是不可能的。 使用Spring Cloud与Netflix OSS。
httplib 库主要用来模拟客户端发送 HTTP 请求,类似于 Curl 工具,支持 JQuery 类似的链式操作。使用起来相当的方便;通过如下方式进行安装: go get github.com/astaxie/beego/httplib 如何使用 首先导入包 import ( "github.com/astaxie/beego/httplib" ) 然后初始化请求方法,返回对象 r