如何使用Postman Mock Server

时间:2017-06-13 07:56:45

标签: api postman

我已经跟踪了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,除了创建阅读模拟之外,并没有提及更多。

4 个答案:

答案 0 :(得分:4)

如果您在示例中请求GET api.domain.com/api/foo,那么mockPath为/api/foo,您的模拟端点是对GET的{​​{1}}调用。

HTTP request methods和下面图片中显示的路径名构成了模拟。

breaking down a url

为了便于使用,模拟服务器设计用于集合之上。 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订阅,它使用我的免费订阅对我有用。

添加示例或选择其中一个进行编辑的菜单: enter image description here

用于定义示例的UI(请参阅正文,标题和状态): enter image description here

如何返回请求页面 enter image description here

以下是根据我的示例得到的正确回复: enter image description here

答案 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