去哪儿移动架构组自研了接口管理平台 YApi,用户在它的可视化 GUI 下可以完成项目管理(提供基本的项目分组、项目管理,接口管理功能)、接口管理 和 MockServer。本问介绍 YApi 的功能和其安装使用的方法
平台介绍
YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理
前置准备
Yapi 需要 nodejs(npm) 和 MongoDB,因此在使用 YApi 之前要,要先安装 nodejs(7.6+)、MongoDB(2.6+) 和 git
YApi 的特性
- 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍
- 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性
- 类似 postman 的接口调试
- 自动化测试, 支持对 Response 断言
- MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据
- 支持 postman, har, swagger 数据导入
- 免费开源,内网部署,信息再也不怕泄露了
使用 YApi
安装
使用官方提供的 yapi-cli 工具来部署 YApi 平台
控制台打印如下内容,则安装成功了: ```shell $ sudo npm install -g yapi-cli —registry https://registry.npm.taobao.org /usr/local/bin/yapi -> /usr/local/lib/node_modules/yapi-cli/bin/yapi-cli /usr/local/bin/yapi-cli -> /usr/local/lib/node_modules/yapi-cli/bin/yapi-clinpm install -g yapi-cli --registry https://registry.npm.taobao.org
- yapi-cli@1.5.0
added 266 packages from 125 contributors in 11.511s
执行 yapi server 启动可视化部署程序安装后的目录结构如下:```shell|-- config.json|-- init.lock|-- log`-- vendors|-- CHANGELOG.md|-- LICENSE|-- README.md|-- client|-- common|-- config_example.json|-- doc|-- exts|-- nodemon.json|-- npm-debug.log|-- package.json|-- plugin.json|-- server|-- static|-- test|-- webpack.alias.js|-- yapi-base-flow.jpg|-- ydocfile.js`-- ykit.config.js
可视化程序部署成功后,控制台提示访问,用浏览器打开地址,如:http://127.0.0.1:3000/。如果能看到 YApi 的部署页面,则安装成功了yapi server
$ yapi server在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
YApi平台部署
在 YApi 部署页面,根据实际需求填写问卷。但要记得自己填写的管理员邮箱 和 部署路径
信息填写完成后,点击【开始部署】,则会开始部署 YApi,这个过程会比较长
如出现如下提示,则服务部署成功
启动服务
服务部署成功后,在 YApi 的部署路径中,输入以下命令来启动 YApi 服务
显示如下提示,则服务启动成功node vendors/server/app.js

服务启动成功后根据提示访问 http://127.0.0.1:3000/,若显示登陆注册页面,则代表服务成功
点击登录账号为刚才设置的管理员邮箱,密码默认为 ymfe.org 来登录系统(默认密码可在个人中心修改)
至此,YApi 已成功下载安装了,后面可以进入到系统中进行接口文档编写、接口录入、测试等等服务管理
前面的安装、部署、启动服务还是比较繁琐的,可以利用 pm2 方便服务管理维护npm install pm2 -g //安装pm2cd {项目目录}pm2 start "vendors/server/app.js" --name yapi //pm2管理yapi服务pm2 info yapi //查看服务信息pm2 stop yapi //停止服务pm2 restart yapi //重启服务
升级
升级项目版本是非常容易的,并且不会影响已有的项目数据,只会同步 vendors 目录下的源码文件cd {项目目录}yapi ls //查看版本号列表yapi update //更新到最新版本yapi update -v {Version} //更新到指定版本
相关教程
教程
YApi 官方使用教程
网上关于 YApi 优化的一些教程:
- 使用 YApi 管理 API 文档,测试
- 自动更新 Swagger 接口数据到 YApi 平台
- 自动化测试
https://mp.weixin.qq.com/s/z66f7bRX8aAOppAtBIB7Uw
代码生成
根据 YApi 的接口定义生成 TypeScript 的请求函数(yapi-to-typescript)
- 根据 YApi 的接口定义生成 javascript 的请求函数(yapi-gen-js-code)
- 根据 YApi 的接口生成 Swift 模型代码(SwiftJSONModeler)
