Mock 功能说明
Mock 功能可以根据、Mock规则配置
、Mock 期望配置
,自动生成模拟数据,且使用者可以根据需要灵活构造各种结构的接口数据。
通常情况 Apifox 零配置
即可生成非常人性化的 mock 数据:
- Apifox 根据接口定义里的数据结构、数据类型,自动生成 mock 规则。
- Apifox 根据内置规则(可关闭),可自动识别出图片、头像、用户名、手机号、网址、日期、时间、时间戳、邮箱、省份、城市、地址、IP 等字段,从而 Mock 出非常人性化的数据。
- 除了内置 mock 规则,用户还可以自定义规则库,满足各种个性化需求。支持使用
正则表达式
、通配符
来匹配字段名自定义 mock 规则。
Apifox 零配置
mock 出来的数据效果:
当你在运行 Apifox 客户端软件时,可以使用本地 mock 服务
当你在运行 Apifox web 端时,可以使用云端 mock 服务
请求method
与接口定义的method
保持一致。
默认情况下,定义好接口/数据结构
后,无需做任何额外的配置,就可以通过上面的 URL 访问到自动 Mock 出来的数据接口了。
Mock URL 说明
本地 Mock:
- 路径模式
http://127.0.0.1:4523/m1/{项目ID}-{版本编号}-{服务编号}/{接口路径}
- 示例:http://127.0.0.1:4523/m1/18600-0-0/users/123
- ID 模式
- 示例:
云端 Mock
- 路径模式
https://mock.apifox.cn/m1/{项目ID}-{版本编号}-{服务编号}/{接口路径}
- 示例:https://mock.apifox.cn/m1/18600-0-0/users/123
- ID 模式
https://mock.apifox.cn/m2/{项目ID}-{版本编号}-{服务编号}/{接口ID}
- 示例:
其他说明
- 项目 ID:打开Apifox,进入“项目设置”查看
- 版本编号:默认版本编号为“0”,表示主版本。(目前Apifox多版本功能还未上线,填“0”即可)
- 服务编号:仅在项目使用了
多个服务
的时候才特殊指定,“default”表示默认服务(推荐,默认服务下不存在该接口时自动查询其他服务下同路径接口)。
注意
- Mock 服务是在本地启动的,所以 URL 里的 ip 地址为
127.0.0.1
,如有其他设备需要访问 mock 数据,只需将127.0.0.1
改成本机的内网 ip 即可。如果还是访问不了,请检查是否防火墙等限制了 mock 所用的4523
端口。 - 如接口路径不是以
/
起始的,则只能使用 接口 ID 模式,不能使用 接口路径模式。 - 打开 Apifox 就会默认启动 mock 服务,无需额外操作。
- Mock 服务的
前置 URL
是固定的,不能修改。
旧版本地 Mock(目前依然兼容,后续将废弃)
- 路径模式
http://127.0.0.1:4523/mock/{项目ID}/{接口路径}
- 示例:
- ID 模式
http://127.0.0.1:4523/mock2/{项目ID}/{接口ID}
- 示例:http://127.0.0.1:4523/mock2/18600/84924
获取接口 mock URL
打开接口详情
-查看
页面的Mock
模块,即可获取对应接口的 mock URLs
定义数据结构的时候,可手动设置 mock 规则,支持 Mock.js 数据占位符定义
方式书写 Mock 规则,
2. 数据字段高级设置
数据字段高级设置
里设置的最大值
、最小值
、枚举值
、Partten
、,也会作为 Mock 规则使用:
高级 mock 的是最灵活的 mock 方式,可实现灵活的自定义数据结构(不受接口数据结构限制),且可以根据不同的请求参数值返回不同的数据。查看高级 Mock 说明文档
4. 智能 Mock
当接口设计的返回 Response (或数据模型) 里的字段未配置 mock 规则时,系统会自动使用智能 Mock 规则生成数据,以实现使用时零配置
即可 mock 出非常人性化的数据。查看智能 Mock 说明文档
数据字段在自动 Mock 数据时,实际执行的 Mock 规则优先级顺序如下:
- 接口详情
高级 Mock
里设置的期望
(根据接口参数匹配)。 - 数据结构的字段里设置的
Mock
规则。 - 数据结构的字段
高级设置
里设置的最大值
、最小值
、枚举值
、Partten
。 项目设置
-智能 Mock 设置
的自定义规则
。项目设置
-智能 Mock 设置
的内置规则
。
- 默认情况下,系统会默认 mock 接口定义里的第一个
Response
的数据结构,如需 mock 其他Response
,可在接口详情
-查看
页面的Mock
模块获取其他 的 mock URL。