Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,能够帮助开发者轻松建立、发布、维护 API。html
项目地址:https://github.com/YMFE/yapi
官网:https://yapi.ymfe.org/,Yapi具备如下功能特性;node
权限管理
扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性linux
可视化接口管理
基于 websocket 的多人协做接口编辑功能和类 postman 测试工具,让多人协做成倍提高开发效率git
Mock Server
易用的 Mock Server,MockServer 除支持普通的随机 mock 外,还增长了 Mock 指望功能,根据设置的请求过滤规则,返回指望数据github
自动化测试(这个我比较关注)
完善的接口自动化测试,保证数据的正确性,支持对 Response 断言web
数据导入
接口支持导入 swagger, postman, har 数据格式,方便迁移旧项目mongodb
强大的插件机制,知足各种业务需求docker
1,先安装docker,参考我另外一篇文章,可用docker version查看docker版本数据库
[root@localhost ~]# docker version Client: Version: 17.12.1-ce API version: 1.35 Go version: go1.9.4 Git commit: 7390fc6 Built: Tue Feb 27 22:15:20 2018 OS/Arch: linux/amd64 Server: Engine: Version: 17.12.1-ce API version: 1.35 (minimum version 1.12) Go version: go1.9.4 Git commit: 7390fc6 Built: Tue Feb 27 22:17:54 2018 OS/Arch: linux/amd64 Experimental: false
2,从仓库中拉取Yapi镜像,docker pull命令(拉取镜像(镜像地址https://hub.docker.com/r/silsuer/yapi/))ubuntu
[root@localhost ~]# docker pull silsuer/yapi Using default tag: latest latest: Pulling from silsuer/yapi 1be7f2b886e8: Pull complete 6fbc4a21b806: Pull complete c71a6f8e1378: Pull complete ...
3,使用镜像实例并运行容器,--name是指定容器名,-dit是指后台运行容器,并返回容器id(或者-it,指在当前窗口以伪终端进入容器,这里若是只用-d,容器启动后就会立刻中止),-p是指端口映射(主机端口:容器端口,27017是数据库端口,9090是yapi初始化配置端口,3000是yapi实际运行端口)
[root@localhost ~]# docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 3000:3000 silsuer/yapi bash 3d3a94296f11c725ff091d52acb2e2a4bdb19d55354a0725f1e8b742c0a93ce7
4,查看当前正运行的容器,docker ps
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3d3a94296f11 silsuer/yapi "bash" 25 minutes ago Up About a minute 0.0.0.0:3000->3000/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:27017->27017/tcp yapi
5,进入容器,有两种方式:docker attach yapi (exit退出容器后,容器中止运行)或者docker exec -it yapi bash(exit退出容器后,容器依旧运行)
[root@localhost ~]# docker attach yapi root@3d3a94296f11:/# -------(这就是伪终端,进入容器后键入操做才显示)
1,启动MogoDB,Yapi部署须要数据库依赖
root@3d3a94296f11:/# service mongodb start * Starting database mongodb [ OK ]
2,由于Yapi须要git支持,先升级git源(由于若是不先安装git直接部署Yapi会出现错误)
root@3d3a94296f11:/# apt-get update Ign:1 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 InRelease Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB] Get:3 http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 Release [3457 B] ...
3,安装git,中途须要输入y赞成安装
root@3d3a94296f11:/# apt-get install git Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: ...
4,查看升级后的get版本
root@3d3a94296f11:/# git --version git version 2.7.4
5,启动Yapi服务进行部署配置,有以下bash提示
root@3d3a94296f11:/# yapi server 在浏览器打开 http://0.0.0.0:9090 访问。非本地服务器,请将 0.0.0.0 替换成指定的域名或ip /bin/sh: 1: xdg-open: not found
启动后,会在bash中提示你访问localhost:9090或者http://0.0.0.0:9090完成Yapi的初始化配置(记得在阿里云控制台安全组打开9090端口或者其余云平台安全组中放开9090端口)
我这里是由于配置到了阿里云服务器上,因此访问http://0.0.0.0:9090是不可能成功的,我这里须要访问http://IP:9090才能成功显示
6,使用本地浏览器打开:http://IP:9090或者http://0.0.0.0:9090,如
7,配置完成后,点击开始部署,以下
打开后的界面就是这样,填写好对应的信息,点击开始部署。发生报错,就根据错误信息查找缘由。我在安装的时候有一个报错
Error: (node:952) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
这个错误是由于mongodb版本的问题,其中的服务在mongo3的时候就已经弃用了,后来和你们交流了下,不用管,能够正常使用,也确实是的。这个问题官方已经在最新版里面修复了,因此之后安装也不会出现这个报错了(我安装的时候是1.4.1)。
8,部署成功后,查看命令窗口,显示以下
... added 345 packages in 53.839s 依赖库安装完成,正在初始化数据库mongodb... > yapi@1.3.22 install-server /my-yapi/vendors > node server/install.js log: mongodb load success... 初始化管理员帐号成功,帐号名:"admin@admin.com",密码:"ymfe.org" 部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 而后在浏览器打开 http://127.0.0.1:3000或者http://ip:3000(放开3000端口) 访问
9,根据上图提示,记住帐户名和密码,ctrl+c中止安装程序并切换到部署目录(/my-yapi/),输入: "node vendors/server/app.js" 指令。
root@3d3a94296f11:/# cd /my-yapi/ root@3d3a94296f11:/my-yapi# node vendors/server/app.js log: the server is start at 127.0.0.1:3000 log: mongodb load success...
10,浏览器打开上面地址:http://ip:3000或者http://127.0.0.1:3000,(安全组放开3000端口)使用上面记住的帐号密码就能够登陆了,以下图
--------------注意1:若是还要使用容器中的命令窗口,先按ctrl+c能够结束yapi进程,再执行nohup node /my-yapi/vendors/server/app.js 2>&1 & 在后台运行yapi,以下
root@3d3a94296f11:/my-yapi# node vendors/server/app.js log: the server is start at 127.0.0.1:3000 log: mongodb load success... ^C root@3d3a94296f11:/my-yapi# nohup node /my-yapi/vendors/server/app.js 2>&1 & [1] 91 root@3d3a94296f11:/my-yapi# nohup: ignoring input and appending output to 'nohup.out' root@3d3a94296f11:/my-yapi#
--------------注意2:若是想yapi后台运行并退出容器,开始是以docker exec -ti yapi bash方式进入的容器,输入exit就能够了,以docker attach方式进入的容器,按ctrl+p+q(你没看错,就是三个键同时按),出现下图所示就能够了
root@3d3a94296f11:/# read escape sequence [root@localhost ~]#
以下图显示:
登陆后的管理界面以下图: