前端工程化-接口数据Mock| 青训营笔记

116 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的的第4天

何为Mock?

在我看来,Mock既是在后端接口还未完成之前,通过程序模拟的方式来模拟正式后端的行为。

Mock的好处?

1. 团队可以并行工作

有了Mock,前后端同学只需要定义好接口文档就可以开始并行工作,互不影响,只在最后的联调阶段往来密切;后端与后端之间如果有接口耦合,也同样能被Mock解决;测试过程中如果遇到依赖接口没有准备好,同样可以借助Mock;不会出现一个团队等待另一个团队的情况。这样的话,开发自测阶段就可以及早开展,从而发现缺陷的时机也提前了,有利于整个产品质量以及进度的保证。

  1. 隔离系统

假如我们需要调用一个post请求,为了获得某个响应,来看当前系统是否能正确处理返回的“响应”,但是这个post请求会造成数据库中数据的污染,那么就可以充分利用Mock,构造一个虚拟的post请求,我们给他指定返回就好了。

  1. 可以用来演示

假如我们需要创建一个演示程序,并且做了简单的UI,那么在完全没有开发后端服务的情况下,也可以进行演示。说到演示了,假如你已经做好了一个系统,并且需要给客户进行演示,但是里面有些真实数据并不想让用户看到,那么同样,你可以用Mock接口把这些敏感信息接口全部替换。

怎样Mock?

首先需要事先定义好接口规范,然后交由其他工具Mock。下面以Apifox为例,了解大致过程。

神级工具ApiFox

概述

官网:www.apifox.cn/

ApiFox 集 API 文档、API 调试、API Mock、API 自动化测试 功能于一体,

Apifox = Postman + Swagger + Mock + JMeter

定义接口

  1. 点击左侧搜索框旁边的 + 号按钮即可打开新建窗口。

  1. 在打开的窗口中,直接定义接口相关信息。

接口路径

以斜杠/起始的接口 path 部分,如/pets/pets/{id}

请求参数

Params 参数

包含 Query 参数和 Path 参数两部分。

  • Query 参数:即 URL 中 ?后的参数。
  • Path 参数:自动提取接口路径中大括号包裹起来的参数,如/pets/{id}中的的{id}即表示名为id的 Path 参数。

Body 参数

Body 参数类型
  • none:无 body 参数。
  • form-data:即 Content-Type 为multipart/form-data
  • x-www-form-urlencoded:即 Content-Type 为application/x-www-form-urlencoded
  • json:即 Content-Type 为 application/json
  • xml:即 Content-Type 为 application/xml
  • binary:发送文件类数据时使用。
  • raw:发送其他文本类数据时使用。

返回响应

返回响应定义主要包含以下几部分

  • 接口返回的 HTTP 状态码
  • 返回内容的数据格式:JSONXMLHTMLRawBinary
  • 数据结构:仅JSONXML可配置数据结构,关于数据结构详细说明

Mock功能

将项目设置里的云端Mock地址作为项目Api的BaseUrl即可,Mock地址在这里找:

image.png

在前端项目中的实示例配置如下:

image.png