stubby中同一PATCH请求端点如何根据请求体参数返回多组响应
问题核心原因
你当前的配置仅匹配了请求路径、请求方法和Content-Type请求头,没有针对请求体中的testVar字段做匹配约束,所以无论传入什么参数都会命中默认规则返回test-1.json。你之前配置查询参数不生效,是因为查询参数匹配的是URL后缀的拼接参数,而你的参数是放在PATCH请求的Body体中,二者匹配规则不通用。
配置方案
你需要为两种参数场景分别配置独立的带请求体匹配规则即可,以常用的Moco、WireMock等Mock服务框架的YAML配置为例:
# 匹配testVar值为1111的请求 - request: url: ^/api/test method: PATCH headers: Content-Type: application/json json_paths: - path: "$.testVar" value: "1111" response: headers: Content-Type: application/json status: 200 file: response/test-1.json # 匹配testVar值为2222的请求 - request: url: ^/api/test method: PATCH headers: Content-Type: application/json json_paths: - path: "$.testVar" value: "2222" response: headers: Content-Type: application/json status: 200 file: response/test-2.json
规则说明
- 配置中使用
json_paths参数做JSON请求体的字段匹配,$.testVar是JSONPath表达式,可精准匹配请求体中根节点下的testVar字段值 - 规则匹配遵循「精准规则优先级高于通用规则」的逻辑,带有请求体约束的规则会先被匹配,对应返回绑定的文件内容
- 如果你使用的是其他Mock框架,核心逻辑一致:新增两条带请求体JSON字段匹配的规则,分别绑定不同的返回文件即可,不需要额外编写业务代码。
内容的提问来源于stack exchange,提问作者Sanath
相关产品推荐
相关产品推荐

