Apikit 自学日记:添加及调用 Mock API

添加及调用 Mock API

在瀑布流开发模式中,如果前端开发人员需要进行页面对接,需要后端先完成API的开发工作,因此前后端开发的进度会互相影响。

通过 Mock API,您可以事先编写好 API 的数据生成规则,由 API 研发管理平台 动态生成 API 的返回数据。开发人员通过访问 Mock API 来获得页面所需要的数据,完成对接工作。

APIKIT 提供市面最强的Mock API能力体系:

如果用户仅需要快速的基于接口文档中的返回结果获取对应的随机数据,则可以通过简易Mock功能获取对应信息。

如果用户期望通过一个url模拟不同的请求信息时,获取对应个的返回结果模拟数据,则推荐使用高级Mock功能。

一、高级Mock

功能入口:API管理应用 / 选中某个项目 / API文档菜单 / 选中某一API文档 / 点击“高级Mock”TAB

高级Mock API 支持根据不同的请求参数返回不同的 HTTP Status Code、Header、Body等数据。您可以在一个 API 文档里创建多个高级Mock API ,模拟前端发起的各种请求,方便对前端逻辑进行校验。

当项目正式发布时,只需将高级 Mock API 的地址前缀替换为实际的访问地址即可。

因为同一个项目中的高级Mock API的地址前缀是相同的(如mock.eolinker.com/uasyd1/…),因此可以在代码中将高级Mock API的地址前缀作为全局变量,项目上线时仅需替换变量的值即可改变整个项目的 API 请求地址前缀。

1.1 添加高级Mock

在“高级Mock”页下,点击“添加Mock”,即会有添加Mock信息弹窗。

除了高级Mock期望名称外,其余需输入的信息分成两个部分:请求触发条件和响应内容

1.1.1 请求触发条件

调用高级Mock的接口地址时,仅有请求信息满足请求触发条件方会返回该高级Mock设置的返回参数。

请求触发条件可设置请求头部、请求体、Query参数。

请求头部 & Query参数

  • 请求触发条件的信息默认同步文档中的请求参数对应的参数信息。其中请求头部和Query参数设置较为简单,直接填写参数和预期参数值即可。

请求体

  • 请求触发条件的请求体数据默认填入文档中的请求体参数信息。

若请求体内有参数,则系统需校验参数名、字段类型和期望参数值。其中若API文档中有设置参数的示例值,则会自动填入到期望参数值内。期望参数值不可为空,若不希望把该请求参数作为触发条件,则可删除该参数。

期望参数值校验可选多种运算方式,包含正则匹配、等于、不等于、大于、小于、大于等于、小于等于。

请求体触发条件提供是否校验数组内元素的勾选项,默认不勾选。不勾选时,对于数组类型参数仅校验第一个元素是否满足规则。勾选后,会对数组类型参数的所有元素进行校验。

1.1.2 响应内容-Body

响应内容为满足该高级Mock触发条件后,Mock URL返回的模拟参数值。其中Eolink提供以下五种配置响应内容中的响应体的方式

1.1.2.1 跟随 API 文档

实时同步API文档的返回参数为该高级Mock的返回模拟值。即API文档调整了返回参数字段或结构后,系统自动同步对应的结构和模拟值。

跟随API文档时,各参数输出的模拟值和文档中该返回参数的示例值字段和Mock字段相关。

若设置了Mock字段,未设置示例字段,则根据Mock字段的规则返回动态模拟值;

若未设置Mock字段,未设置示例字段,则根据示例字段的内容返回静态模拟值;

若设置了Mock字段,且也设置了示例字段,则根据示例字段的内容返回静态模拟值。

即示例字段的优先级高于Mock字段。

若未设置Mock字段,且未设置示例字段,则输出系统默认兜底规则:

字段类型 输出值规则
int 随机16位数字(有可能为负数)
string 最多6位的随机字符(可能包含大小写字母、数字和符号)
byte 固定输出96
file 输出随机尺寸图片
json 固定输出{}
float 随机16位数字(有可能为负数,有可能带有一位小数)
double 随机16位数字(有可能为负数,有可能带有一位小数)
data 随机输出“yyyy-MM-dd”格式的年月日数据
datatime 随机输出“yyyy-MM-dd hh:mm:ss”格式的年月日时分秒数据
boolean 随机输出ture或false
short 随机16位数字(有可能为负数)
long 随机16位数字(有可能为负数)
array 固定输出[]
object 固定输出{}
number 随机16位数字(有可能为负数)
null 固定输出null

1.1.2.2 JSON

响应内容使用JSON格式编辑时,支持Mockjs语法。

在JSON的响应内容表格中四个输入字段的解析如下:

字段 解析
参数名 响应内容中的参数名,即“key”。
类型 字段类型,若为数字相关类型可使用特殊生成规则。
参数值 响应内容中的参数值,即“Value”。可输入固定值或Mockjs占位符。
生成规则 Mockjs输出值的重复次数。仅可输入数字和英文横杆“-”。

仅返回固定值

若用户仅需要返回某个固定值,则仅需把该固定值填入到参数值字段中即可

仅使用Mockjs占位符

若用户仅需要使用Mockjs占位符即可完成随机数生成,则仅需把Mockjs占位符填入到参数值字段中即可。注意需带有占位符前缀@

重复Mockjs占位符输出内容

若用户需要重复Mockjs占位符输出的内容,例如占位符为@mock="★",若不填写生成规则字段,则系统会自动输出一个★。

若生成规则填写2,则代表需要重复输出2次该占位符结果,最终输出★★。

若生成规则填写1-3,则代表需要重复输出1次到3次范围内随机次数的该占位符结果,最终输出有可能为★或★★或★★★。

字段类型为数字相关类型的特殊用法

若字段类型选择了int、float、double、number,当参数值未输入任何内容时。可通过生成规则输出特殊范围的随机数字。填写规则为:1-1000代表1到1000中随机一个数字;若有小数点,小数点后填写1-3,则代表小数点后随机出现1到3位的数字。

例如 1-10.1-10,则代表小数点前从1到10随机出现一个数字,小数点后出现1到10位随机数字。所以可能的输出值为5.2341。

JSON格式还提供根数据生成规则,需选择根类型为数组Aarray时才会生效,用于配置生成多少个数组元素。

1.1.2.3 XML

使用XML格式时,可以编辑XML声明,并编辑各参数字段的属性。

1.1.2.4 Raw

当您不需要随机生成数据时,可以选择 Raw 类型并可填写任意格式静态数据。

1.1.2.5 JavaScript

当您希望通过代码生成返回数据时,可以使用编写 Javascript 代码的方式,并使用 return 语句返回数据。Javascript 模式中也支持 Mock JS,通过 Mock.mock() 方式调用,详情可以查阅 Mock JS 官方文档。

以下例子表示使用 Javascript 代码结合 Mock JS 生成 随机中文名+当前日期 的返回结果:

var date = new Date();
var seperator1 = "-";
var year = date.getFullYear();
var month = date.getMonth() + 1;
var strDate = date.getDate();

//在这里使用Mock JS 获取随机中文名
var userName = Mock.mock("@cname");

if (month >= 1 && month <= 9) 
{
    month = "0" + month;
}

if (strDate >= 0 && strDate <= 9) 
{
    strDate = "0" + strDate;
}

var currentdate = year + seperator1 + month + seperator1 + strDate;

return userName+seperator1+currentdate;

点击预览按钮得到的示例结果:

1.1.3 响应内容-Header

响应头部内容会自动同步API文档中的返回头部内容,其高级Mock的配置也较为简单,直接编辑参数名与参数值即可。

1.1.3.1 响应内容-高级设置

用户还可以在高级Mock中对响应进行高级设置:配置响应状态码或响应延迟时间。

  • 响应状态码

  • 仅HTTP协议的高级Mock方可配置,可输入3位标准的HTTP状态码。系统默认填写200。

  • 响应延迟时间

  • 可配置高级Mock的URL调用后延迟多少秒返回信息。可配置单位为毫秒ms。

1.2 调用高级Mock

用户点击高级Mock列表页顶部的调用地址,即可复制地址。可把地址黏贴到IDE工具中,调用接口进行调试。

1.2.1 调用优先级

一个API文档中无论设置了多少条高级Mock,均仅有一个高级Mock调用地址。用户在调用时,根据请求的内容判断触发了哪一条的高级Mock设置,并返回对应高级Mock的返回结果。

系统默认提供一条系统默认期望的高级Mock设置,该配置无任何请求触发条件,代表任何条件均可触发该高级Mock。但系统会遵循自定义高级Mock设置大于系统默认期望设置的优先级,优先执行其他高级Mock设置。若其他高级Mock设置未被触发时,才会触发系统默认期望。

另外,若用户停用系统默认期望的高级Mock,并调用时未有任何其他高级Mock被触发,则系统会返回提醒:无法找到该Mock API,并检查相关设置。

1.2.2 启用/停用高级Mock

在保存高级Mock配置时,系统会自动判断其请求触发条件是否和其他高级Mock配置相同。若有相同的请求触发条件,则会提醒继续编辑以便把请求触发条件修改成不一样的条件,或继续保存当前的高级Mock配置,并停用与其请求触发条件相同的高级Mock。

用户可以在高级Mock列表右侧的操作按钮中,设置启用或停用对应高级Mock。停用后,即使请求触发条件满足该高级Mock的需求,也不会返回该高级Mock的返回结果。

二、简易Mock

功能入口:API管理应用 / 选中某个项目 / API文档菜单 / 选中某一API文档 / 点击“编辑”TAB

简易Mock功能可在编写API文档的时候,同时对不同的返回结果进行Mock配置。并且可预置智能Mock规则,在编写返回参数时,若参数名和字段类型匹配智能Mock规则时,系统自动填入该参数的Mock规则。

配置简易Mock后,API文档会自动生成Mock URL,用户可复制该URL直接调用得出想要的数据结果。

该功能仅支持HTTP协议接口下的JSON或XML数据类型的返回结果

2.1 添加简易Mock

1、 进入API文档编辑页,选中需要编辑的返回结果

2、数据类型选择JSON 或 XML ,在参数列表中填写字段名和选择数据类型,若字段名和数据类型命中了智能Mock的规则,则字段名输入框失去焦点后,系统会自动填充该字段的Mock值。

若mock值已有内容,则变更字段名或数据类型均不会触发智能Mock

3、无论是否命中智能Mock规则,均可点击mock输入框,填写所需的mock规则。mock输入框支持填写数值和mockjs占位符。

  • 若填写数值,则调用简易Mock的时候固定返回该数值

  • 若填写mockjs占位符,系统会根据占位符的输入内容实时展示您可能想输入的值。您点击下拉选项中的可能值后,该值会快速填入mock输入框中。

4、点击保存API文档,所添加的简易Mock即可被调用。

2.2 调用简易Mock

1、进入API文档展示页,下拉至返回参数模块,对应的返回结果标题下,会有简易Mock链接

2、点击 简易Mock 链接右侧的复制按钮即可复制到剪贴板,在代码中直接对该地址发起请求即可得到对应结果的虚拟数据。

2.3 删除简易Mock

进入API文档编辑页,在对应的返回结果中,清空对应字段的mock值后,调用该简易Mock时,对应字段返回系统默认的随机数据。

猜你喜欢

转载自blog.csdn.net/qq_42107247/article/details/131535637