YApi-接口管理平台在微小开发团队中的落地

730 阅读3分钟

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/yapi

    docker 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 //重启服务
    

YApi在团队中的最佳实践