请问 WireMock 大师可以帮忙吗?我想配置 WireMock 来根据配置文件或某些变量代理转发请求(作为查询参数/正文值匹配之上的附加条件)。
配置文件将是简单的 json 文件(或类似的文件):
[
{
"key" : "proxyForwardRequest",
"value" : "yes"
}
]
规则 json 文件如下所示:
{
"mappings": [
{
"priority": 1,
"request": {
"method": "ANY",
"urlPathPattern": "/.*",
"bodyPatterns": [
{
"matchesJsonPath": {
"expression": "$.criteria.code",
"matches": "ABC"
}
}
]
},
"configFile": [
{
"fileName": "config.json",
"matchesJsonPath": {
"expression": "$.proxyForwardRequest",
"matches": "yes"
}
}
],
"response": {
"proxyBaseUrl": "https://destinationURL.com"
}
}]
}
请问这样的事情可能吗?也许有人已经尝试过并拥有 json 配置/自定义代码。我尝试在 WireMock 文档中搜索,但无法找到简单的解决方案。由于 WireMock 是开源的,是否可以对其进行自定义?谢谢你
我进行了更多搜索,发现状态行为函数可能是解决我的问题的一个选项,这是真的,我对这种方法很满意:
{
"mappings": [
{
"scenarioName": "ForwardTo",
"requiredScenarioState": "DestinationURL",
"priority": 1,
"request": {
"method": "ANY",
"urlPathPattern": "/.*"
},
"response": {
"proxyBaseUrl": "https://destinationURL.com"
}
},
{
"scenarioName": "ForwardTo",
"requiredScenarioState": "Mock",
"priority": 1,
"request": {
"method": "ANY",
"urlPathPattern": "/.*"
},
"response": {
"proxyBaseUrl": "https://mockURL.com"
}
}
]
}
WireMock启动后的默认场景状态为STARTED。您需要使用以下方法更改场景状态以激活正确的行为:
PUT /__admin/scenarios/my_scenario/state
{
"state": "state_2"
}
更多详细信息可以在这里找到:https://wiremock.org/docs/stateful-behaviour/