我已经跟踪了the guide here to create a postman mock邮递员收藏。模拟似乎已成功创建,但我不知道如何使用模拟服务。
我已经获得了模拟的网址,但是如何指定我的一个请求?如果我向https://{{mockid}}.mock.pstmn.io
发出GET请求,我会收到以下回复:
{
"error": {
"name": "mockRequestNotFoundError",
"message": "We were unable to find any matching requests for the mock path (i.e. undefined) in your collection."
}
}
根据same guide mentioned above以下网址"运行模拟" https://{{mockId}}.mock.pstmn.io/{{mockPath}}
但究竟是什么mockPath
?
在我的收藏中,我有很多文件夹,在其中一个文件夹中,我有一个带有示例响应的请求。如何通过模拟访问此示例响应?提前感谢您的帮助!
Here's the Postman Pro API,除了创建阅读模拟之外,并没有提及更多。
答案 0 :(得分:4)
如果您在示例中请求GET
api.domain.com/api/foo
,那么mockPath为/api/foo
,您的模拟端点是对GET
的{{1}}调用。
HTTP request methods和下面图片中显示的路径名构成了模拟。
为了便于使用,模拟服务器设计用于集合之上。 examples中的请求按原样使用,并附带响应。文件夹或集合的名称不是路径名的一部分,在使用模拟时不会在任何地方考虑因素。模拟集合意味着模拟集合中的所有示例。一个例子是请求和响应的元组。
如果指定了可选的响应状态代码,则可以获取相同路径的相应响应。这可以使用https://{{mockid}}.mock.pstmn.io/api/foo
标头指定。因此,将x-mock-response-code
作为x-mock-response-code
传递将返回与路径名匹配的示例,并且回复状态代码为404
。
目前,如果存在具有相同路径但不同域的示例,并且mock无法区分它们,则它将确定地返回第一个。
答案 1 :(得分:3)
我遇到了同样的问题,看到了一个无关紧要的错误,但最终我找到了解决方案。不幸的是我在Postman网站上找不到参考资料。但这是我的解决方案:
创建Mock服务器时,您可以定义第一个请求(如GET api / v1 / about)。因此,Mock服务器将被创建,但即使您获得API密钥并将其放在请求标头中(如x-api-key),它仍会返回错误。它没有意义,但事实证明,定义请求是不够的。对我来说,当我为请求添加一个Example时,它才开始返回响应。
所以我建议您创建的每个请求,也至少创建一个示例。您发送的请求将与您创建的示例匹配,并返回匹配的响应。 您可以定义示例响应的正文,标题和HTTP 状态代码。。
我没有Pro Postman订阅,它使用我的免费订阅对我有用。
答案 2 :(得分:0)
如果您针对同一查询有多个示例:
模拟请求接受另一个可选标头 x-mock-response-code ,该标头指定您返回的响应应匹配的整数响应代码。例如,500将仅返回500响应。如果未提供此标头,则将返回与任何响应代码最接近的匹配项。
诸如x-mock-response-name或x-mock-response-id之类的可选标头允许您分别通过名称或所保存示例的uid进一步指定所需的确切响应。
Here's文档以获取更多详细信息。
答案 3 :(得分:0)
{{mockPath}}
只是您请求的路径。您应该首先为您的任何请求添加一个示例。
示例:
请求:https://www.google.com/path/to/my/api
添加模拟服务器后,您可以在以下位置访问示例:
https://{{mockId}}.mock.pstmn.io/path/to/my/api