yar*_*Tir 7 java wiremock spring-cloud-contract
我在合同中定义了查询参数。我需要这个参数是可选的:
method 'GET'
url($(regex(urlRegex))) {
queryParameters {
parameter 'fitler': $(stub(regex(filterRegex)))
}
}
Run Code Online (Sandbox Code Playgroud)
我希望这个合同适用于带有过滤器的 URL/my/sample/url?fitler=some-filter-expression和不带过滤器参数的URL /my/sample/url。
我怎样才能做到这一点?这甚至可能吗?
到目前为止,WireMock 规范中还没有定义明确的方法。但是,您可以使用正则表达式解决方法,即使用属性(在 JSON 存根中)指定 URL urlPathPattern。请参阅下面的示例。
{
"request": {
"method": "GET",
"urlPathPattern": "/myapp/users(\\?((a-zA-Z\\d\\_\\-)+\\=(a-zA-Z\\d\\_\\-)+)(\\&(a-zA-Z\\d\\_\\-)+\\=(a-zA-Z\\d\\_\\-)+)+)?"
},
"response": {
"status": 200,
"bodyFileName": "users.json",
"headers": {
"Content-Type": "application/json"
}
}
}
Run Code Online (Sandbox Code Playgroud)
观察 URL 末尾的可选部分,该部分查找典型的 URL 查询结构。这个,我已经在wiremock中尝试过,运行顺利。
| 归档时间: |
|
| 查看次数: |
1636 次 |
| 最近记录: |