wiremock - Wiremock 捕获路径参数并在响应正文中返回
问题描述
我正在尝试使用 WireMock 创建动态模拟。我有一种情况,如果我指定 URL,例如:
http://localhost:8089/api/account/abc@abc.com
那么我应该收到如下响应:
{
"account" : "abc@abc.com"
}
简而言之,路径参数在响应正文中返回。我可以通过使用urlPathPattern
set to使请求 URL 通用,/api/account/([a-z]*)
但是我不确定如何abc@abc.com
使用正则表达式在响应中捕获并返回它。
解决方案
在 WireMock 中,正则表达式可用于识别请求匹配中的电子邮件格式。出于本示例的目的,我使用了一个非常粗略的示例。您的生产实施可能需要更强大的方法。
这个请求:
http://localhost:8181/api/account/someone@somewhere.net
符合此规则:
{
"request": {
"method": "GET",
"urlPathPattern": "/api/account/([a-z]*@[a-z]*.[a-z]*)"
},
"response": {
"status": 200,
"jsonBody": {
"account": "{{request.path.[2]}}"
},
"transformers": ["response-template"],
"headers": {
"Content-Type": "application/json"
}
}
}
并返回此响应:
{
"account": "someone@somewhere.net"
}
它利用了 WireMock 中的响应模板处理功能。请求模型变量[ {{request.path.[2]}}
] 可用于从请求中获取部分。
推荐阅读
- html - Boostrap 导航栏无法正确显示
- scala - Akka 在没有访问 Flows 的情况下结合了 Sinks
- apache-flink - Flink SQL Job 堆空间不足
- javascript - JavaScript 将表单的多个复选框变成一个对象
- c# - AutoFixture Freeze 返回空对象
- java - 用于列出具有部分 uuid 的对象的 S3 前缀
- java - 改造 Gson 自定义 json 通用转换器
- clips - CLIPS家谱专家系统
- amazon-web-services - Aws-Sam 本地调用:未找到层端点
- debugging - 使用 Buildroot 生成 RISC-V Linux GDB