我需要用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在头三个字符上匹配,然后在头的其余部分匹配(.*((