Skip to content

user_manual

Bosn edited this page Nov 12, 2019 · 10 revisions

用户手册

RAP2是做什么的?

RAP2是时下流行的开发接口管理工具,通常用于前后端分离的开发模式中,共同约定接口,而RAP2可以根据约定的接口自动生成Mock数据、对后端接口进行校验,拥有较好的文档编写体验,支持复杂的Mock逻辑,为开发提供了便利。

RAP2 是参照RAP1 第一代的基础上,使用Node + React重构了所有主要功能。

基本使用

概念 / 词汇

  • 仓库:即接口文档放置的仓库,可以包含多个接口文档
  • 协同仓库:Mock服务协同仓库,在当前仓库中无法匹配到接口时,将会从协同仓库中寻找,便于大的项目按不同仓库拆分管理
  • 团队:团队可包含多个仓库,用户可加入多个团队
  • 插件:用于实现生成Mock数据、拦截真实I/O请求以Mock数据替换等功能的插件
  • 平台API:以开放API形式将接口文档、Mock数据等内容,提供给外部调用
  • Mock模板:Mock.js规则模板,用于生成Mock数据,模板中可定义丰富的规则以适应数据的按需随机性
  • Mock数据:通过Mock模板生成的最终Mock数据

管理团队和仓库

完成注册和登陆后,首先需要创建仓库。RAP2中,不同的项目以 仓库 作为单位进行管理。每个仓库中可以保存一系列的接口和分组,仓库之间的数据可以通过 协作仓库 来进行串联及共享。

进入 主菜单 -> 团队 ,点击 新建团队 按钮,即可创建新的团队。团队分私有及公开两种权限,公开的内容所有注册用户可见(方便内网搭建用户共享项目数据,不用单独申请)。如果设置为私有,则只有团队成员可见该团队及所属的项目。填写好资料后即可保存,系统自动跳转至团队详情页。

点击 新建仓库 按钮即可创建新的仓库,仓库成员拥有仓库的编辑权限,团队成员但不是项目成员,拥有仓库的只读权限。RAP1老用户可以通过导入仓库功能,实现RAP1 -> RAP2的项目导入。

仓库编辑

在仓库列表中,点击仓库进入编辑工作区,默认系统会给出示例模块方便大家理解。点击 编辑 按钮可以进入编辑模式,进入编辑模式的接口其他用户无法修改,并显示 该接口已被某位帅哥、靓女锁定 完成后即可保存或取消。上方Tab是模块,可以理解为对接口的分组,根据业接口务和喜好自行整理分组的粒度。在分组下可以创建不同的接口。

在接口信息编辑区(上方),需要正确填写相关信息。RAP2将通过填写的地址,自动根据相同相对路径来生成Mock服务的API,例如地址如果填写 /a/b/example.json 则生成的Mock API调用接口为 http://rap2.taobao.org/a/b/example.json 。类型GET / POST等也需要准确填写,如果某接口定义的类型是GET,实际发送了POST请求到Mock服务,RAP2将不会匹配对应的接口。

在接口参数编辑区(下方),分请求参数和响应参数来对接口进行定义,其中:

  • 名称:变量名
  • 必选:选中后,在Mock服务请求时若不传,会进行校验并报错
  • 类型:变量类型
  • 生成规则:详见进阶使用 -> Mock语法 部分,通过规则可以模拟丰富的Mock数据
  • 初始值:配合生成规则,可以按业务配置Mock数据,如数字范围、字符串长度变化区间、数组长度等
  • 简介:备注信息

请求参数和响应内容区块中,可以点击右上角 新建 按钮来创建新的参数,参数可以嵌套,当类型为Object时,可以点击左侧 + 来添加子参数。

导入功能可以很方便的通过已有JSON来进行格式的导入。RAP2接口数据和JSON数据的区别是,后者是静态的一份死数据,前者包含字段备注、Mock规则等,可以通过这些文档自动生成各种符合规则的动态Mock数据。同时,前者也是文档的一部分。

点击预览按钮,可以在区域下方查看实时的Mock结果。

完成接口编辑后,点击保存即可完成文档的更新。

进阶使用

Mock语法

Mock.js语法规则

RAP2使用了Mock.js作为Mock引擎,详细语法规则请参考mockjs.com。在请求Mock服务时,RAP2将通过文档信息 生成 Mock.js模板,最后再转为Mock.js数据

和Mock规则有关的,主要是 生成规则初始值 两列。例如想生成从1000开始的自增数字id,则 生成规则 填写 +1初始值 填写 1000 ,则生成的规则如下:

{ "id|+1" : 1000 }

Mock规则产生的结果,将从 { "id": 1000 } 开始自增。

再比如,需要数组长度为随机3-5,其中对象属性name随机一个中文名,则数组字段arr的规则填写3-5,name字段的初始值谈些@cname,产生的模板如下:

{
  "arr|3-5": {
    "name": "@cname"
  }
}

则生成的Mock数据为:

{
  "arr": [
    {
      "name": "李磊"
    },
    {
      "name": "朱勇"
    },
    {
      "name": "龙芳"
    },
    {
      "name": "田桂英"
    }
  ]
}

如何引用请求参数?

在初始值中填写$参数名$,RAP2 Mock服务会根据实际的传参将其替换为实际传入值。例如字段param填写初始值$xxx$,当收到请求url?xxx=123时,实际返回值为{ "param": "123" }