YApi简介

Yapi 由 YMFE 开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护 API。

● 权限管理
YApi 成熟的团队管理扁平化项目权限配置满足各类企业的需求

● 可视化接口管理
基于 websocket 的多人协作接口编辑功能和类 postman 测试工具,让多人协作成倍提升开发效率

● Mock Server
易用的 Mock Server,再也不用担心 mock 数据的生成了

● 自动化测试
完善的接口自动化测试,保证数据的正确性

● 数据导入
支持导入 swagger, postman, har 数据格式,方便迁移旧项目

● 插件机制
强大的插件机制,满足各类业务需求

相关环境配置

安装node.js


#准备

yum install -y wget

#下载安装

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz

mkdir -p /usr/local/nodejs

tar -Jxvf node-v10.15.3-linux-x64.tar.xz -C /usr/local/nodejs/

#写入环境变量

echo "export PATH=/usr/local/nodejs/node-v10.15.3-linux-x64/bin:$PATH" >> /etc/profile

source /etc/profile

#查看版本信息

node -v

npm version

npx -v

安装MongoDB

  1. 更新yum
    centos 的安装工具,安装时间稍长
yum -y update
  1. 添加MongoDB源文件
    在/etc/yum.repos.d 创建一个 mongodb-org.repo 文件
touch /etc/yum.repos.d/mongodb-org.repo

编辑mongodb-org.repo文件

vim /etc/yum.repos.d/mongodb-org.repo

添加文件内容

[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.2/x86_64/
gpgcheck=0
enabled=1
  1. 安装MongoDB
yum install -y mongodb-org
  1. 启动mongodb
service mongod start
  1. 设置开机启动
chkconfig mongod on
  1. 配置远程访问
    修改mongod.conf配置文件
    vim/etc/mongod.conf
注释 bindIp: 127.0.0.1
#bindIp: 127.0.0.1
  1. 重启mongod
service mongod restart

部署YApi

安装AYpi

  1. 安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org
  1. 启动服务
yapi server
  1. 启动可视化部署程序
    按提示窗口上的地址打开浏览器
    在这里插入图片描述
    这时候你会发现根据http://ip地址:9090无法访问,是因为还未将防火墙的端口开放。

开放端口

  1. 阿里云安全组开放
    将9090端口打开,此时还可以将YApi需要隐射的端口同时打开。
    在这里插入图片描述
  2. 服务器防火墙端口开放
    修改防火墙配置文件
    centos7以下版本使用iptables
vi /etc/sysconfig/iptables

新增端口命令
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT

保存文件命令  :wq

重启防火墙
systemctl start firewalld.service

centos7以上版本使用firewalld

添加端口命令
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
重启服务
systemctl restart firewalld
查看服务列表
firewall-cmd --list-ports

其他命令
开启服务   systemctl start firewallds
关闭服务   systemctl stop firewallds

完成后http://ip地址:9090即可访问。
在这里插入图片描述

修改配置

  1. 修改默认信息
    修改完成后,点击开始部署。
    在这里插入图片描述
  2. 部署成功
    切换部署目录,输入:“node vendors/server/app.js”指令启动服务器
    在这里插入图片描述
    我个人是在/root/my-yapi目录下
    在这里插入图片描述

禁止注册

在开放注册的情况下,攻击者可以通过注册登录并注入恶意脚本从而执行任意命令,控制服务器,由于内网部署yapi,只是自己在用,所以禁止注册.
在 config.json 添加 closeRegister:true 配置项,和port同一级,就可以禁止用户注册 yapi 平台,修改完成后,请重启 yapi 服务器即可。

{
   "port": "*****",
   "adminAccount": "******",
   "closeRegister":true,
   "db": {
      "servername": "127.0.0.1",
      "DATABASE": "***",
      "port": "***"
   },
   ......
}

禁止注册后添加用户

禁止注册后我们如何添加用户呢,因为yapi平台上没有操作界面,所以我们只能通过操作数据库的方式来添加数据,这个需要用到mongo数据库的一些基本命令。

[root@i9z bin]# ./mongo 127.0.0.1:27017     //找到mongo安装bin目录,使用mongo命令连接数据库.,当然有用户和密码的需要用户名和密码登录

[root@i9z bin]# ./mongo --host 127.0.0.1 -u "myUserAdmin" --authenticationDatabase "admin" -p'abc123'

//执行后出现如下界面说明连接成功,可以开始使用了
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>  //尖括号后边输入mongodb命令

------------------------------下边是一些基本命令-------------------------------
> show dbs   //展示有哪些数据库类似mysql的show database
admin   0.000GB
config  0.000GB
local   0.000GB
yapi    0.151GB
> use yapi   //表示使用哪个数据库,和mysql用法一样
switched to db yapi
> show collections   //展示该数据库的表,类似mysql的show tables
> db.user.find();  //展示user表中的所有数据,类似mysql的select * from user;
> db.user.find();  //展示user表中的所有数据,类似mysql的select * from user;
>db.user.insert({"study":"*****", "type": "site", "username": "测试","password":"******","email":"ceshi@ceshi.com","passsalt":"******","role":"member","add_time":"1572687240","up_time":"1602233254","__v":"0"});   //user表中插入一条数据


MongoDB设置用户名密码

默认的mogodb是不用用户名密码也可以登陆的,但是这是不安全的。

  1. 登录服务器,输入命令mongo
$ mongo
MongoDB shell version v4.0.3
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("87c294f1-7517-4edd-86b2-4fc04f33839f") }
MongoDB server version: 4.0.3
  1. 输入use dbname,进入数据库

use dbname
switched to db dbname

  1. 设置数据库用户名,密码
db.createUser({user:"用户名",pwd:"r密码",roles:[{role:"root",db:"admin"}]});
  Successfully added user: {
  }
  1. 如何登录
    进行第1、2步后,输入db.auth("用户名","密码")进行认证。
> db.auth("用户名","密码")
1

返回码1表示认证成功。
认证成功后就可以查看数据表,或者进行其他操作啦。
查看数据库db.stats();

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐