如何发送由标头值驱动的wiremock存根响应



我需要用wiremock构建一个存根,并让它使用一个简单的规则返回一个或另一个基于特定标头的响应:

  • 如果标头以400 sed开头,则返回Bad Request响应
  • 如果标头以500开头,则发回Internal Server Error响应
  • 对于任何其他标头,发回Accepted响应
{
"request": {
"request": {
"method": "POST",
"urlPattern": "/v1/my/path"
}
},
"response": {
"headers": {
"Content-Type": "application/json"
},
"bodyFileName": "files/{{request.headers.<first.three.characers.of.my.header matching 400/500 or 202 otherwise>}}-response.json"
}
}

提前感谢您的输入

如果您只想要一个映射,那么您必须编写一个自定义扩展来实现这一点。我认为没有足够智能的解析只返回前三个字符。此外,您还需要为每个可能在标头中发送的状态代码提供一个JSON文件。

相反,您可以有三个单独的映射,其中包含您想要的匹配。

{
"priority": 1,
"request": {
"url": "/some/path",
"headers": {
"some-header": {
"matches": "400.*"
}
}
},
"response": {
"status": 400,
"bodyFileName": "some-400-response.json",
}
}
{
"priority": 1,
"request": {
"url": "/some/path",
"headers": {
"some-header": {
"matches": "500.*"
}
}
},
"response": {
"status": 500,
"bodyFileName": "some-500-response.json",
}
}
{
"priority": 2,
"request": {
"url": "/some/path"
},
"response": {
"status": 200,
"bodyFileName": "some-other-response.json",
}
}

在这些映射中发生的两件主要事情是:

  • 使用优先级(1用于特定400/500情况,2用于一般情况(
  • 头值匹配(regex在头三个字符上匹配,然后在头的其余部分匹配(.*((

相关内容

  • 没有找到相关文章

最新更新