当前位置: 首页 > 知识库问答 >
问题:

线调捕获路径参数并在响应正文中返回

彭海阳
2023-03-14

我正在尝试使用WireMock创建动态模拟。我有一种情况,如果我指定如下URL:

http://localhost:8089/api/account/abc@abc.com

那么我应该会收到如下响应:

{ 
  "account" : "abc@abc.com" 
}

简而言之,路径参数在响应正文中返回。我可以通过使用urlPathPattern设置为/api/account/([a-z]*)urlPath模式使请求URL通用。但是,我不确定应该如何捕获abc@abc.com并使用正则表达式在响应中返回此值。

共有2个答案

越英范
2023-03-14

使用WireMock.Net响应模板也可以做到这一点

该规则如下所示:

{
    "Request": {
        "Path": {
            "Matchers": [
                {
                    "Name": "RegexMatcher",
                    "Pattern": "^/api/account/([a-z]*@[a-z]*.[a-z]*)$"
                }
            ]
        },
        "Methods": [
            "get"
        ]
    },
    "Response": {
        "StatusCode": 200,
        "BodyAsJson": {
            "account": "{{request.PathSegments.[2]}}"
        },
        "UseTransformer": true,
        "Headers": {
            "Content-Type": "application/json"
        }
    }
}
丌官和泰
2023-03-14

在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"
}

它利用了线制造中的响应模板处理功能。请求模型变量 [{{请求.路径。2]}}] 可用于从请求中获取节。

 类似资料:
  • 我正在尝试使用WireMock创建动态模拟。我有一个情况,如果我指定URL,如 <代码>http://localhost:8989/api/account/121 那我应该收到这样的回复: 简而言之,path param在响应体中返回,但是我不确定应该如何捕获121并使用wiremock在响应中返回它。 对于这种请求 或者 我可以使用什么,所以响应将过滤掉id和角色并放入响应中。 我正在使用独立的

  • 我正在尝试使用WireMock创建动态模拟。我有一个情况,如果我指定URL,如 对于这种要求 我可以使用什么,所以响应将过滤掉id和角色并放入响应中。 我正在使用独立的线框罐2.27.2来创建线轮服务器。

  • 问题内容: 我有一个简单的Flask路由,我想捕获文件的路径。如果我在规则中使用它,则适用于,但无效。如何捕获任意路径,以便将其传递给视图函数? 问题答案: 使用path转换器捕获任意长度的路径:将捕获路径并将其传递给参数。默认转换器捕获单个字符串,但以斜杠停止,这就是为什么第一个URL匹配而第二个URL不匹配的原因。 如果你还想匹配根目录(斜杠和空路径),则可以添加另一个规则,该规则为path参

  • 我正在测试改进,以与凌空比较,我很难得到我的请求的回应。例如,我做这样的事情: 它工作了,对象< code>toto被设置,但是出于测试目的,我还想显示服务器返回的JSON响应。 所以我正试图从读取,这是一个。不幸的是,我总是得到一个了。 我尝试使用Retrofit中的Utils类,但我得到了相同的错误。

  • 我是Stack Overflow和Apache Camel路由的新手,遇到了一些麻烦。我创建了一个非常简单的SOAP Web服务,它接受一个包含一些随机文本的XML请求,然后在响应中返回相同的字符串。 使用Camel,我能够将请求发送到web服务并获得响应(如果我使用日志组件捕获请求/响应)。 理想情况下,我希望将XML消息(message1.XML、message2.XML、message3.X

  • 嗨,我正在为后端使用Laravel API,并在React中使用Redux进行登录。嗯,我调用API,我希望laravel API传递正在发生的事情的精确错误,例如用户不存在。问题是当我想在使用axios进行的调用的catch部分访问Mesage时 Laravel登录部分 使用axios响应调用 我在网络控制台中得到的响应 xhr.js:177邮政http://127.0.0.1:8000/api