如何在WireMock响应中动态引入请求体中的JSON内容?
WireMock动态映射请求体JSON字段的解决方案
要实现从请求体中动态提取id和带转义字符的message字段并生成符合要求的响应,可通过以下配置解决转义字符被篡改、JSON结构混乱的问题:
核心配置思路
利用WireMock的response-template扩展,通过三重括号{{{ }}}禁用HTML转义,同时结合请求体解析函数正确拼接JSON结构,确保message字段内的转义引号\"原样保留。
完整映射示例
{ "request": { "method": "POST", "url": "/your-target-endpoint" }, "response": { "status": 201, "body": "{{{ '{\"status\":\"CREATED\",\"id\":\"' (parseJson request.body).id '\",\"message\":\"' (parseJson request.body).message '\"}' }}}", "headers": { "Content-Type": "application/json" }, "transformers": ["response-template"] } }
配置说明
(parseJson request.body).id:将请求体解析为JSON对象后,直接提取id字段值(parseJson request.body).message:提取请求体中已转义的message字符串,避免二次转义- 整个响应体用
{{{ }}}包裹:禁用模板引擎的HTML转义逻辑,确保message内的\"不会被转换为" transformers: ["response-template"]:必须启用该扩展才能使用模板语法
注意事项
启动WireMock时需确保加载response-template扩展,可通过命令行参数实现:
java -jar wiremock-jre8-standalone.jar --extensions com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer
内容的提问来源于stack exchange,提问作者Naveen Kumar
相关产品推荐
相关产品推荐

