【发布时间】:2021-11-06 10:53:26
【问题描述】:
是否可以使用 Wiremock 来模拟反应式后端。我想要做的是让 Wiremock 返回分块响应,但每个块应该是一个有效的 json 字符串(模仿反应堆 Flux 类型响应的东西)。
场景是这样的,我有一个后端发送我可以使用的 json 对象流。每个 json 字符串都可以编组到 POJO 中,而无需跟踪状态(之前的块)。通过电线传输的每个块都可以有不同的长度。
关于如何模拟这样的后端有什么想法吗?
【问题讨论】:
是否可以使用 Wiremock 来模拟反应式后端。我想要做的是让 Wiremock 返回分块响应,但每个块应该是一个有效的 json 字符串(模仿反应堆 Flux 类型响应的东西)。
场景是这样的,我有一个后端发送我可以使用的 json 对象流。每个 json 字符串都可以编组到 POJO 中,而无需跟踪状态(之前的块)。通过电线传输的每个块都可以有不同的长度。
关于如何模拟这样的后端有什么想法吗?
【问题讨论】:
大多数(如果不是全部)API 模拟、存根、伪造、替换库(有各种各样的名称,但将这些称为 API 存根是公平的),例如 wiremock 不支持响应负载分块。
然后你有两个选择:
Controller 构造型,它为您的端点返回一个反应式 (Flux)。然后让底层框架(例如Spring WebFlux)为你处理响应流(我认为最干净的选择)话虽如此,您最好使用模拟 API,在该 API 中返回一个可迭代类型,该类型会在调用时由客户端自动映射到其响应式对应对象 Flux。映射和请求/响应处理是低级细节,底层框架负责相应地映射您的输入和输出,您不应该担心端点的实现方式,因为您的客户端应该在所有情况下都以相同的方式工作.毕竟,互操作性是框架的责任,而不是应用程序开发人员的责任。
【讨论】: