YApi
介绍:旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API
前言
在考虑多方面因素下,选择了YApi作为前后端API沟通的管理服务,简单说说原因,在API设计方面,考虑过很多,有以下几个:
-
Swagger
-
Postman+Coding
-
ApiPost
-
Rap2
但是这些都有着一些让我无法忍受的问题,以下都是个人想法,也可能是我没有找到对应问题的解决办法。
-
Swagger是通过在代码中写注释或者引入文件来自动生成API文档,要去学习Swagger的文档语言,不是可视化的操作。
-
Postman是API接口设计测试神器,但是他们的API文档只能通过网页来保存与查看,并且他们的response不支持参数的注释介绍,也就是只有返回结果,但是不能自定义每个返回参数的含义,除非单独在json结果中添加注释。
-
ApiPost是国人开发的,功能和PostMan很类似,是我使用最久的,虽然软件内还有一些小问题,但是对于Postman以上两点有极大的改善,不仅文档能导出Markdown和word,并且response的结果可以自动导出键值对并且对其进行注释。不过在使用了几个月后让我放弃的原因就是安全问题,他们的隐私政策中并未提到是如何保存我的接口数据的,并且我如果要生成文档,就一定要分享接口或者目录,这个分享链接默认是开放的,类似于Postman的publish document,但是Postman可以只在团队中分享,并且分享是很严格需要确定的,然而ApiPost的分享只要点击一下,我的这个接口就开放了,我如果没有及时关闭,我甚至都找不到我以往分享了哪一些接口,其实这些不能算是严格的安全问题,最重要的是ApiPost团队可以不经过我的允许查看我的所有接口数据(这是亲身实践确定,这一点就说明了我在他们的数据库数据完全是未加密的,因为我习惯在设计API时也将设计文档写在一起方便查看,但如果是明文数据,那么我还是很排斥的,所以在这之后我就选择了大团队或开源软件以保证我数据的安全性)
-
Rap2界面难受
YApi解决了postman的问题,而且开源可以内网部署,暂时是我完美的选择方案。
环境要求
-
nodejs(7.6+)
-
mongodb(2.6+)
服务器系统
- Ubuntu 18.04.4
安装环境
- nodejs安装
sudo apt install nodejs
sudo apt install npm
// 这里注意这样下载的node版本很可能是非常古老的,需要更新为最新的版本
// 首先查看版本(可以和node官网比对一下版本号,最好是LTS稳定版本)
node -v
// 如果版本太老,就需要安装n模块来更新node
npm install -g n
// 安装版本二选一
// 安装稳定版本
n stable
// 安装最新版本
n latest
// npm升级
npm install npm -g
// 如果要指定版本,可以通过@指定版本
npm install npm@3.10.10 -g
// 注意,此处的node与npm的版本还需调用-v查看,如果仍然为旧版本就是环境变量路径问题
需要调用
path="$path"
解决
-
安装mongodb(该流程完全按照官方文档走)
- 官方链接:
Install MongoDB Community Edition on Ubuntu — MongoDB Manual
- Import the public key used by the package management system,导入公钥
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
- Create a list file for MongoDB,建文件夹
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
- Reload local package database,更新apt
sudo apt-get update
- Install the MongoDB packages,开始安装mongo
sudo apt-get install -y mongodb-org
// To prevent unintended upgrades
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
- Follow these steps to run MongoDB Community Edition on your system,一些mongo命令
- Start MongoDB,开启mongo服务
sudo systemctl start mongod
- Verify that MongoDB has started successfully,查看mongo状态
sudo systemctl status mongod
- Stop MongoDB,关闭mongo
sudo systemctl stop mongod
- Restart MongoDB,重启mongo
sudo systemctl restart mongod
- Begin using MongoDB,命令行使用mongo
mongo
安装YApi
- 可视化部署
// 该命令需要root权限,并且时间会有点长
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server
// 之后根据提示访问地址通过网页配置
- PM2守护服务进程
- PM2官方文档
npm install pm2@latest -g
// 进入安装好的my-yapi文件夹,依次进入my-yapi/vendors/server,然后执行
pm2 start app.js