Mock介绍
mock地址解析:
假设你 YApi 的部署地址为:http://yapi.xxx.com 然后用这个地址作为示例
项目 -> 接口编辑 -> 返回数据设置
返回数据设置有两种方式,最新版本默认是基于 json+注释
的方式,另外一种是基于 json-schema
定义数据结构,请根据实际情况灵活选择使用。
- 正则表达式需要基于 rule 书写,示例如下:
{
"name|regexp": "[a-z0-9_]+?",
"type|regexp": "json|text|xml"
}
- 支持替换请求的 query, body 参数
- 示例
```
/**- 这是一个接口返回数据示例
*/
- 这是一个接口返回数据示例
{
“errcode”: 0,
“errmsg”: “”,
“data”: {
“id”: “@id”, // 随机生成 id
“name”: “@name” // 随机生成用户名
}
}
详细使用文档请查看:<a href="http://mockjs.com/examples.html">Mockjs 官网</a>
## 方式2. json-schema
<img src="./images/usage/json-schema-demo.jpg" />
开启 json-schema 功能后,将不再使用 mockjs 解析定义的返回数据,而是根据 json-schema 定义的数据结构,生成随机数据。
### 如何生成随机的邮箱或 ip?
<img src="./images/usage/json-schema-mock.jpg" />
点击高级设置,选择 `format` 选项,比如选择 `email` 则该字段生成随机邮箱字符串。
## 如何使用 Mock
### 1 在 js 代码直接请求yapi提供的 mock 地址(不用担心跨域问题)
````javascript
let prefix = 'http://yapi.xxx.com/mock/2817'
$.post(prefix+'/baseapi/path', {username: 'xxx'}, function(res){
console.log(res) //返回上图预览部分的数据
})
`
2 基于本地服务器反向代理
优点:不用修改项目代码
2.1 基于 nginx 反向代理
2.2 基于 ykit mock功能
{
pattern: /\/api\/(.*)/,
responder: 'http://yapi.xxx.com/mock/58/api/$1'
}
上面通过正则匹配,将所有接口转到 上,比如 http://localhost/api/user/status
会成为
详细使用指南: ykit-config-mock
2.3 基于 ykit Jerry 代理
假设您本地服务器访问地址是: http://xxx.com
- 清除本地配置的 hosts
- 下载 Chrome 插件 SwitchyOmega 点击“选项” => 新建情景模式 设置代理服务器 127.0.0.1 代理端口 999
- 启动 sudo ykit s -x 浏览器访问
- 在 jerry 中重新配置 hosts
- 在 Jerry 中点击 URL MAP 并添加配置
详细使用指南: 代理工具
2.4 基于 Charles 代理
点击 Charles 工具栏下的 tools >> Rewrite Settings 填写如下信息:
版本 v1.3.22 新增 mock 接口请求字段参数验证功能,具体使用方法如下:
- 打开 项目 -> 设置 开启 mock 严格模式
针对 query, form 中设置的必须字段会进行必填校验