我正在尝试提供一种MOCK服务,该服务从查询中获取headerName和值,并将其作为(动态)标头返回给响应。我正在使用以下响应定义:
"response" : {
"status" : 200,
"statusMessage": "OK",
"headers" : {
"Content-Type" : "application/json",
"{{request.query.debugHeader}}" : "{{request.query.debugHeaderValue}}"
},
"jsonBody" : {
"headerSent": "{{request.query.debugHeader}} {{request.query.debugHeaderValue}}"
},
"transformers": ["response-template"],
"base64Body" : ""
}
标头值已正确评估并放入响应模板中,但是我无法从请求中获取标头名称。
发送请求时
http://localhost:8090/example?debugHeader=name&debugHeaderValue=value
我得到的结果标头是:
HTTP/1.1 200 OK
Content-Type: application/json
{{request.query.debugHeader}}: value
但是我希望将{{request.query.debugHeader}}替换为实际的请求参数值(在上面的示例中为“名称”)。
有什么想法吗?
预先感谢 亚历克斯
答案 0 :(得分:1)
WireMock.Net支持此功能。
您需要指定的请求如下所示:
{
"Guid": "90356dba-b36c-469a-a17e-669cd84f1f05",
"Priority": 0,
"Request": {
"Path": {
"Matchers": [
{
"Name": "WildcardMatcher",
"Pattern": "/trans",
"IgnoreCase": false
}
]
},
"Methods": [
"get"
]
},
"Response": {
"StatusCode": 200,
"BodyDestination": "SameAsSource",
"Body": "{\"msg\": \"Hello world : {{request.path}}\" }",
"UseTransformer": true,
"Headers": {
"Content-Type": "application/json",
"Transformed-Postman-Token_{{request.path}}": "token is {{request.headers.Postman-Token}}"
}
}
}
这将在响应中添加转换后的标头 Transformed-Postman-Token _ {{request.path}} 。
答案 1 :(得分:0)
当前,这种类型的可变性不是现成的WireMock应用程序的一部分,必须自定义添加。在WireMock文档中的Extending WireMock部分,尤其是 Transformation Responses 中的部分。