背景
由于公司业务扩充需要,项目组和项目逐渐多了起来,亟需要一个对各个项目API进行统一管理和对外展示的平台,理想功能包括API编辑,发布,在线运行,测试,流量监控,API项目集合、多级目录,团队成员权限管理,swagger导入,快速生成在线文档分享或者有可供不同角色观看的api预览页,区分于管理页这些功能。
Why YApi
搜索和比较了现在几个开源的平台和软件,大致有以下:
- 完全开源:YApi,Rap2,API Mocker(丁香园开源接口管理系统), moyuApi
- 外网免费,私有化部署收费:Apifox,eolink
从功能上说,Apifox和eolink都相当成熟和全面,但是其免费使用只限客户端,且在公网发布和分享API。由于我所需的是在企业内网搭建,只能从全开源里找答案。Rap2由阿里团队开发,界面非常简洁和友好,就是功能有些欠缺,缺少api运行测试以及成员api权限管理等关键要素;API Mocker和moyuApi界面和功能相对齐全,但社区支持较差。如此看来可选的也只有YApi了,基本功能齐全但缺少多级目录以及生成在线api文档功能,但好在官方文档齐全,后续可进行二开改造。
YApi演示环境:yapi.smart-xwork.cn/
YApi官方文档:hellosean1025.github.io/yapi/
搭建部署
按照官方文档搭建就可以了:
YApi部署文档:hellosean1025.github.io/yapi/devops…
推荐方式二,可部署到服务器上:
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令减少,大概 10+ M)
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
在此啰嗦一个容易遗漏的点,初次修改config.json时,重点修改下面几行改成你的mongo配置,否则运行脚本时会无法通过数据库连接验证
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": 27017,
"user": "root",
"pass": "root",
"authSource": "admin"
登录系统
部署启动后,访问 http://127.0.0.1:3000/ ,即可跳转到YApi首页:
使用初始用户密码登录:
邮箱:admin@admin.com
密码:ymfe.org
开始你的YApi之旅吧~~