开源Yapi接口管理平台容器化部署
一、Yapi介绍
YApi 是由去哪儿移动架构组推出的一款开源项目,是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。
- 官网介绍:https://github.com/YMFE/yapi
- 官网部署教程:https://hellosean1025.github.io/yapi/devops/index.html#%e5%ae%89%e8%a3%85
Yapi具有以下功能特性:
(1)权限管理:扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性.
(2)可视化接口管理:基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率。
(3)Mock Server:易用的 Mock Server,MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据。
(4)自动化测试:完善的接口自动化测试,保证数据的正确性,支持对 Response 断言。
(5)数据导入:接口支持导入 swagger, postman, har 数据格式,方便迁移旧项目。
(6)插件机制:强大的插件机制,满足各类业务需求。
二、Yapi容器化部署
2.1 容器部署Yapi
(1)部署MongoDB容器
[root@10-27-0-224 ~]# docker network create yapi_net [root@10-27-0-224 ~]# docker run --network yapi_net -p 27017:27017 -d --name yapi_mongodb --restart always -v /data/yapi_mongo/config:/data/configdb -v /data/yapi_mongo/mongodb:/data/db docker.io/mongo
(2)使用nodejs镜像,运行容器
[root@10-27-0-224 ~]# docker run --network yapi_net --name yapi --restart always -it -p 9090:9090 -p 3000:3000 docker.io/openshift/jenkins-agent-nodejs-8-centos7 bash
(3)环境版本查看
bash-4.2$ node --version v8.11.4 bash-4.2$ git --version git version 1.8.3.1
(4)安装yapi所需数据包
bash-4.2$ npm install -g yapi-cli --registry https://registry.npm.taobao.org npm WARN deprecated axios@0.16.2: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 npm WARN deprecated bson@1.0.9: Fixed a critical issue with BSON serialization documented in CVE-2019-2391, see https://bit.ly/2KcpXdo for more details /home/jenkins/.npm-global/bin/yapi -> /home/jenkins/.npm-global/lib/node_modules/yapi-cli/bin/yapi-cli /home/jenkins/.npm-global/bin/yapi-cli -> /home/jenkins/.npm-global/lib/node_modules/yapi-cli/bin/yapi-cli + yapi-cli@1.5.0 added 257 packages in 44.258s
2.2 初始化YApi平台
(1)初始化配置
bash-4.2$ yapi server 在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip
部署日志 当前安装版本: 1.9.2 连接数据库成功! 开始下载平台文件压缩包... http://registry.npm.taobao.org/yapi-vendor/download/yapi-vendor-1.9.2.tgz 部署文件完成,正在安装依赖库... …… > yapi-vendor@1.9.2 install-server /var/lib/origin/my-yapi/vendors > node server/install.js log: mongodb load success... 初始化管理员账号成功,账号名:"1938418737@qq.com",密码:"ymfe.org" 部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3000 访问
【注】如上图点击开始部署,如果成功,会显示帐号和密码。
(2)继续执行以下操作
bash-4.2$ npm install -g pm2 --registry https://registry.npm.taobao.org bash-4.2$ pm2 start /var/lib/origin/my-yapi/vendors/server/app.js ------------- __/\\\\\\\\\\\\\____/\\\\____________/\\\\____/\\\\\\\\\_____ _\/\\\/////////\\\_\/\\\\\\________/\\\\\\__/\\\///////\\\___ _\/\\\_______\/\\\_\/\\\//\\\____/\\\//\\\_\///______\//\\\__ _\/\\\\\\\\\\\\\/__\/\\\\///\\\/\\\/_\/\\\___________/\\\/___ _\/\\\/////////____\/\\\__\///\\\/___\/\\\________/\\\//_____ _\/\\\_____________\/\\\____\///_____\/\\\_____/\\\//________ _\/\\\_____________\/\\\_____________\/\\\___/\\\/___________ _\/\\\_____________\/\\\_____________\/\\\__/\\\\\\\\\\\\\\\_ _\///______________\///______________\///__\///////////////__ Runtime Edition PM2 is a Production Process Manager for Node.js applications with a built-in Load Balancer. Start and Daemonize any application: $ pm2 start app.js Load Balance 4 instances of api.js: $ pm2 start api.js -i 4 Monitor in production: $ pm2 monitor Make pm2 auto-boot at server restart: $ pm2 startup To go further checkout: http://pm2.io/ ------------- [PM2] Spawning PM2 daemon with pm2_home=/home/jenkins/.pm2 [PM2] PM2 Successfully daemonized [PM2] Starting /var/lib/origin/my-yapi/vendors/server/app.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ? │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ app │ fork │ 0 │ online │ 0% │ 13.2mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
2.3 登录与管理YApi平台
作者:UStarGao
链接:https://www.starcto.com/open-sourcing/217.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-08-09MySQL基于Binlog数据恢复方案
- 2021-07-21MySQL主从同步异常之Relay log异常1594
- 2021-07-22MongoDB删除数据空间没有释放原因分析-碎片
- 2021-02-12MySQL主从同步异常1864
- 2022-06-18MongoDB事务开发之写操作事务writeConcern