当前位置: 首页 > 知识库问答 >
问题:

Webflux反应API的Spring云合同

夹谷山
2023-03-14

我正在尝试将Spring Cloud Contract应用于使用Spring WebFlux构建的反应API。基本上能够以以下方式从API发送通量和接收响应通量:

@RequestMapping("/endlessecho")
public Flux<String> endlessEcho(Flux<String> input) {
    return input;
}

但是,我在网上或文档中找不到关于我是否可以使用Spring Cloud Contract实现这一点的信息。

甚至有可能为此写一份合同吗?它是否能够提供wiremock并生成适当的JUnit测试?

共有1个答案

谢英耀
2023-03-14

通过这个提交(https://github.com/spring-cloud-samples/spring-cloud-contract-samples/commit/f7030148a9337d4c7184f7c8e27c271d9b89681b),我在Spring云合同示例中添加了一个WebFlux示例。

像往常一样定义契约就够了,在插件设置中为testmode参数传递explicit模式。您必须使用标准的RestAssuredMockMVC静态URI字段来设置使用WebFlux的应用程序的URI,而不是RestAssuredMockMVC。您需要设置整个Spring上下文并绑定到一个端口,基本上就是这样。

在名为consumer的项目中,有一个测试使用来自producer-webflux项目的存根。从存根运行程序的角度来看,存根的启动方式没有任何变化。

 类似资料:
  • 我看到了以下关于如何定制spring security webflux的帖子:spring webflux自定义API身份验证 如果我们在ServerSecurityContextRepository.Load中抛出异常,那么Spring会将http头更新为500,而我无法操作此异常。 但是,在controller中抛出的任何错误都可以使用常规的@ControllerAdvision来处理,这只是

  • 我正在我的项目中尝试新的ReactiveQuerydslPredicateExecutor,但我找不到像在QueryDslPredicateExecutor中那样的findAll(谓词,分页)方法 这是故意的吗?这是否意味着对于reactive不建议使用分页?

  • 假设我有两个微服务,我想在使用WebFlux的Spring REST控制器中实现BFF(前端的后端)模式。 来自2个远程服务的域对象是: 并且API编写器必须返回以下类型的对象: 为了简洁起见,我编写了一个控制器,它将所有服务模拟在一个。 我的问题是我刚刚开始与反应堆,我不是真的确定我在做什么…这是我的composer方法的当前版本: 它可以工作,但是我知道我应该用map、flatMap和zip进

  • WebFlux Spring Boot事务性注释是否适用于反应式MongoDB? 我将WebFlux Spring Boot与反应式MongoDB配合使用,如: 我标记了我的一个方法进行测试。但似乎注释对我不起作用。如果此方法内部发生错误,那么它仍然会向我的mongoDB数据库添加原始数据。 我是否错过了一些东西,或者Spring Boot事务性注释无法与反应式MongoDB配合使用? 我使用Mo

  • 我希望得到一些关于我正在构建的一个小型Spring Boot应用程序的提示。 我需要一些提示的地方是--我如何将这个API的每个消费者视为一个新的订阅者--并在我让他们进入时向他们发布事件?实现一个完整的pub-sub模式,跟踪订阅者以及他们何时停止使用endpoint,这当然是可能的。但我想知道是否有一个更简单的解决方案使用一些Springs的反应功能。我输入的事件不需要存储--只需转发给在事件