前言

YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。

简单来说,就是提供写接口文档的地方,后端人员写接口文档,前端人员直接在上面进行接口查看与开发。
官网地址

安装环境

linux下安装Yapi需要先安装它的依赖环境

安装nodejs(7.6+)

下载nodejs安装包
https://nodejs.org/en/download/

  • 然后通过ftp上传到linux上,或者直接在linux下载
1
wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz
  • 解压
1
tar xf node-v12.16.3-linux-x64.tar.xz
  • 解压文件的 bin 目录底下包含了nodenpm等命令,我们可以使用 ln 命令来设置软连接:
1
2
ln -s /usr/local/node-v12.16.3-linux-x64/bin/npm /usr/local/bin
ln -s /usr/local/node-v12.16.3-linux-x64/bin/node /usr/local/bin
  • 检查是否安装正确
1
2
node -v
npm -v

安装mongodb(2.6+)

  • 下载mongodb安装包

https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.18.tgz

  • 也可以去官网下载其他版本

https://www.mongodb.com/download-center/community

  • 然后通过ftp上传到linux上。
  • 解压
1
tar -zxvf mongodb-linux-x86_64-4.0.18.tgz
  • 拷贝到指定目录
1
mv mongodb-linux-x86_64-4.0.18 /usr/local/mongodb
  • 配置环境变量
    1
    vi /etc/profile
  • 在最下面添加
1
export PATH=$PATH:/usr/local/mongodb/bin
  • 创建文件夹

一个存放数据,一个存放日志

1
2
mkdir -p /data/db
mkdir -p /logs

创建mongodb配置文件

  • 进入bin目录
1
cd /usr/local/mongodb/bin
  • 创建mongodb.conf配置文件
1
vi mongodb.conf
  • 直接拷贝写进去
1
2
3
4
5
6
7
8
dbpath = /data/db # 数据文件存放目录
logpath = /logs/mongodb.log # 日志文件存放目录
port = 27017 # 端口
fork = true # 以守护程序的方式启用,即在后台运行
noauth = true # 不进行安全验证
# auth=true # 需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程
#访问,第一次安装建议注释
bind_ip=0.0.0.0 # 允许远程访问,或者直接注释,127.0.0.1是只允许本地访问
  • 启动mongodb
1
./mongod -f mongodb.conf
  • 检查是否启动成功
1
netstat -nltp|grep mongod

或者

1
ps -ef | grep mongod

注意:一定要设置密码,或者设置本机访问,我就被黑过一次,数据全部丢失

安装yapi-cli

直接在线安装

1
npm install -g yapi-cli --registry https://registry.npm.taobao.org

配置yapi
1
ln -s /usr/local/node-v12.16.3-linux-x64/bin/yapi /usr/bin/yapi

  • 启动
    1
    yapi server
    如果访问没效果,请打开9090端口,重启防火墙
  • 永久打开端口

    1
    firewall-cmd --zone=public --add-port=9090/tcp --permanent
  • 重启防火墙

    1
    firewall-cmd --reload
  • 然后再次启动yapi server

  • 写上公司名称,其余一般默认,直接部署即可。

部署成功,请切换到部署目录,输入: “node vendors/server/app.js” 指令启动服务器,
然后在浏览器打开http://127.0.0.1:3000访问

  • 切换目录
    1
    cd /usr/local/mongodb/bin/my-yapi/
  • 启动服务器
    1
    node vendors/server/app.js
    或者 以守护进程启动
    1
    node vendors/server/app.js &
    打开http://127.0.0.1:3000访问
    记得开3000端口,重启防火墙!!!

如果要在后台运行yapi,有两种方式,一种是pm2,一种是screen,
我这里使用的是pm2,官网推荐的也是这个

官网:https://pm2.keymetrics.io/docs/usage/quick-start/

安装pm2

1
npm install pm2@latest -g

pm2启动项目

1
pm2 start /www/node-v10.16.0-linux-x64/my-yapi/vendors/server/app.js

后面跟的是安装yapi的目录

使用yapi

使用默认账号登录
账号:admin@admin.com
密码:ymfe.org

只有超级管理员可以管理分组

创建分组

创建新项目

部分接口预览

其中还有Mock地址等,前端直接访问。爽歪歪的,后端不管功能有没有做好,只要把接口定义好了,前端可以直接对比着开发。多爽,再也不用和前端说话了。

新成员加入

当技术老大,也就是admin把项目弄好, 所有开发都可以页面注册账号,然后查看接口和维护接口了。

所有成员注册账号

然后管理员把他们都拉近项目组

此时所有成员都可以看到接口啦。
登录成员账号查看

安装浏览器插件

其实写完接口的同时,可以直接进行浏览器访问本地服务,进行测试,就好比postman接口自测一样。

这个可以直接点击截图里面的教程,安装浏览器插件

此时本地启动我的项目(这个是前几篇写微服务写的,拿来用用)

测试一个 get请求user/test

直接省去了postman。哈哈

数据导出

如果项目开发完,是备份也好,是给别人看也好,还是第三方使用也好,直接导出!

导出效果查看

实还有好多的功能,没有完全写到。慢慢体会吧。

问题

Error: getaddrinfo ENOTFOUND yapi.demo.qunar.co

  1. 首先确认下自己node版本,版本过高不行,下面是我的版本:
    1
    2
    node:v10.16.0
    npm:6.9.0
  2. 其实确认自己部署的yapi是否是最新版
    我安装的是最新版,V1.10.9

errmsg: ‘command find requires authentication’(登录时出现)

  1. 确认mongodb是否创建用户,如果没有,按照下面进行操作(根据安装具体位置进行调整)

    1
    cd /www/mongodb/mongodb-linux-x86_64-4.0.18/bin
  2. 创建用户

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ./mongo
    #创建用户,授读写权限
    db.createUser(
    {
    user: 'yapi',
    pwd: 'xxx',
    roles: [ { role: "readWrite", db: "yapi" } ]
    }
    )
    exit
  3. 重启mongodb

    1
    2
    3
    4
    5
    6
    #先杀掉进程
    ps -ef|grep mongodb
    kill -9 具体进程id

    #重启mongodb
    ./mongod -f mongodb.conf
  4. 重新部署yapi

    1
    yapi server

    部署最后数据库,开启验证,输入用户名密码,即可

  5. 如果还是报上面那个错

有可能是输入启动命令的目录不对
可以验证一下

1
2
3
4
5
#进入启动目录
/www/node-v10.16.0-linux-x64/my-yapi/vendors/server/app.js

#使用node启动,登录看看有误报错
node app.js

如果以上能正常登录进去,证明确实是执行目录权限问题
可以就在当前目录/www/node-v10.16.0-linux-x64/my-yapi/vendors/server/app.js下执行

或者nohup node app.js &

1
pm2 start app.js

重新登录,就没有问题了!

使用文档

https://hellosean1025.github.io/yapi/

以上步骤较为繁琐,我开始没想到docker,docker部署yapi要简单的多,
给大家推荐个链接https://blog.csdn.net/qq_18638761/article/details/118491867

原文地址