【问题标题】:Wiremock - How can I apply response templating to the header name?Wiremock - 如何将响应模板应用于标头名称?
【发布时间】:2018-06-22 14:23:47
【问题描述】:

我正在尝试提供一个 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}} 替换为实际的请求参数值(上例中的“名称”)。

有什么想法吗?

提前致谢 亚历克斯

【问题讨论】:

    标签: wiremock


    【解决方案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}}

    【讨论】:

    • 我确实更新了 WireMock.Net 的示例,你可以定义这个。
    【解决方案2】:

    目前,这种类型的可变性不是开箱即用的 WireMock 应用程序的一部分,必须自定义添加。在 WireMock 文档中,Extending WireMock 部分,尤其是关于转换响应的部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 2021-04-20
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      相关资源
      最近更新 更多