Postman高级应用(11):可以开始对接了吗——Mock服务

版权声明:本文为@李奕锋 原创文章,如需转载,请注明出处! https://blog.csdn.net/qq598535550/article/details/87924629

场景

通过上一节的学习我们掌握了如何生成并发布接口文档,可是现实总是残酷的。前端团队往往不满足于干巴巴的接口文档,他们需要对接真实的数据,但这样很受限于后端开发进度,于是便有了Mock(模拟)这种东西,也就是我们平时常说的“造 假数据”。Mock并不是Postman先提出的,在没接触Postman之前,不少前端团还是有一些自己熟悉的Mock工具。大多数情况下,mock都是由前端团队来驱动完成的。

利用Postman的Mock Server功能,我们可以把现成的请求模拟数据。前端请求Mock的接口地址,就能返回我们预先模拟好的数据,而不依赖于后端的开发进度。同时,还能解决在家远程办公而无法连接公司内网服务问题,以及开发初期由于服务不稳定引起的其他问题。

实战

看过不少介绍Postman Mock的相关文章,它们大多数都使用创建好的集合和请求示例来Mock,而忽略了通过新建API的这种方式来Mock接口,并没有把Mock的一些基本概念讲清楚。

Postman提供的Mock Server方式有两种:

  1. 新建API
  2. 使用工作区的集合

我们先通过新建API的方式让大家对Mock的概念有个基本的理解。

方式一:新建API

  1. 点击Postman主窗口左上角的New,选择Mock Server。在弹出的新窗口中,我们可以看到有两种创建方式,默认选择的是第一种Create a new API。中间有个类似表格一样的东西,有请求方法、请求路径、响应码、响应体这几项,也就是说,一个标准的mock须包含以上几项。
    我们先填写一个API:请求方法是GET,请求路径是test,响应码是200,响应体是ok。值得注意的是,请求路径前面为什么加了个{{url}}/?这是因为Postman匹配路径的时候会忽略掉前面协议和域名这一块,而域名之后的部分才是我们所关心的。
  2. 填完API,点下一步。我们的mock名字就叫test_mock吧。先别勾选Make this mock server private,这个我后面会解释。完成后点创建,你会得到一个Postman分配给的网址,这个网址是以mock.pstmn.io域名结尾的,这个就是对于刚才创建的API对应的mock地址。
    如果你不小心关掉没保存下来也没关系,你会发现左侧多了一个集合,Postman自动为我们刚才填写的API创建了一个同名的新集合。集合里包含一个请求,请求里包含一个示例,点开发现全是我们刚才填写的内容。我们点集合三角形展开详细面板,选择Mocks选项卡,就可以找回刚才分配的mock地址了。不仅如此,还自动创建了一个同名的环境变量,里面包含一个url的值,正是我们刚刚分配的mock地址。

  3. 我们打开Postman为我们自动创建的那个请求test,运行环境选择自动创建的test_mock(即你刚才填写的mock名称),直接点运行,返回结果正是我们刚才填入的ok值。把鼠标移动请求地址的{{url}}上,发现被替换成真正的mock地址。我们通过Code功能把请求地址拷贝到浏览器请求一下,发现返回结果还是我们想要的。至此,你已经成功学会了如何mock,而且对mock的概念有了基本的理解。
  4. 再讲多一点,我们在地址栏后面加上/1,最终变成{{url}}/test/1,再请求一次会有什么变化?如果把test变成test1,结果又是怎样呢?大家可以试试。其实这里涉及到了Mock Server的匹配算法,我们不会展开来讲,先简单理解为支持模糊匹配,并返回最接近的请求示例响应。

方式二:使用集合

  1. 先创建一个集合,在集合里创建一些请求,为请求添加一个示例。如果不懂的可以先看上一节关于请求示例的添加
    注意:示例创建之后可以修改。一个请求可以包含多个示例,只会返回最符合要求的示例响应。

  2. 为该集合添加Mock。点击左侧集合旁边的三角形,展开详情面板。选择Mocks选项卡,点击Add a mock进入打开添加窗口。操作方法跟上面一样,只不过不需要手动填mock名称,完成后同样会得到一个mock地址。至于如何使用上面已经提过了,这里不再赘述。

私有mock server

  1. 在创建mock的界面,有一项是Make this mock server private。不勾选的话,我们的mock地址公布出去,谁都可以访问,会造成不必要的麻烦。我们重新生成一个mock server,这次勾选设为私有。
  2. 打开 https://go.pstmn.io/pro-api-keys ,点击Get API key生成一个密钥,名字可以叫使用者的名字方便管理。这里可以看到我们所有生成的key,可以禁用或删除。
    注意:生成的api key并不是专门用于mock server,还可以用于Postman提供的其他服务中。
  3. 如果我们直接请求会返回没有访问权限,这就对了,因为我们还差最后一步。在请求的头部加入x-api-key,再次请求即可正常返回数据。当然,这个api key我们正常应该写在全局变量里,比较好维护。

更多内容请阅读《Postman高级应用》专栏

展开阅读全文

没有更多推荐了,返回首页