0 - 前言
记录一下,给未来的自己
在开发过程中,团队里的同学使用的客户端API调用工具五花八门:Postman,Postwoman,Apifox等,没有统一。我总结了这些工具在日常开发工作中使用的一些痛点:
- 需要下载工具到本地,换了开发环境后,需要花时间配置
- 不同工具间,数据一致性维护比较困难和低效
- 同一个工具间的数据同步,需要注册/登录账号,数据保存在外部第三方库上,不符合公司安全策略
- 接口文档的编写和接口的调用割裂,一方面,对后端来说,增加了很多工作量,另一方面,可能会出现变更后的同步不及时
- 对前端和测试不友好:需要自己根据文档编写调用接口,降低了工作效率
所以,总结来说,就是:一方面增加了无谓的工作量,另一方面,增加了团队内部和团队间协作的成本。
那么,是否有一套解决方案可以解决以上的痛点呢?
答案是:在线接口管理平台
目前市面上,比较火的管理平台有Swagger, Rap2, YApi等等。结合目前团队的现状和痛点,选择一套适合的够用的方案,其实就是最好的方案。针对目前我们开发团队的特点,这里选用了YApi
1 - YApi的功能
- 可视化接口管理:基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率
- 权限管理:扁平化用户权限管理,分admin+组长+开发+访客权限,权限策略简单有效
- Mock服务:易用的 Mock Server,使得前端开发不再依赖于后端
- 自动化测试:完善的接口自动化测试,保证数据的正确性
- 多样的数据导入:支持导入 swagger, postman, har 数据格式,方便迁移旧项目
- 插件机制:可通过添加、开发插件来做进一步的定制化二次开发 source
2 - YApi的部署
YApi的部署,官网的教程可以看这里。我这边直接拉取dockerhub上的yapi镜像:
-
搜索yapi镜像:
docker search yapi -
选择一个yapi镜像拉取到本地:
docker pull silsuer/yapidocker run -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi -
进入容器
-
查看容器id
docker ps -
进入容器
docker attach container-id -
启动mongodb
service mongodb start -
启动yapi安装程序
yapi server
-
-
根据提示在浏览器中输入ip:9090进行安装,管理员账号默认账号名:"admin@admin.com",密码:"ymfe.org"
-
回到终端,执行
nohup node /my-yapi/vendors/server/app.js 2>&1 & 在后台运行yapi【注意】也可以通过pm2来管理YApi服务,见第三章节。
-
执行
ctrl+p+ctrl+q退出容器即可
3 - YApi服务器管理
启动YApi服务:
node /my-yapi/vendors/server/app.js
官网教程中,推荐使用pm2管理node服务器的启动,停止,重启等操作。 这里简单展开如何操作:
-
首先,下载pm2:
npm i -g pm2 -
接着,启动YApi:
pm2 start --name yapi /my-yapi/vendors/server/app.js -
pm2操作YApi的其他命令:
pm2 info yapi //查看服务信息 pm2 stop yapi //停止服务 pm2 restart yapi //重启服务