YAPI 管理平台部署


目录

    • 前言
    • 一、部署规划
      • 1.1 服务器规划
      • 1.2 资源下载
    • 二、部署
      • 2.1 MongoDB 部署
        • 2.1.1 安装服务
        • 2.1.2 创建数据
      • 2.2 YAPI 部署
        • 2.2.1 YAPI 特点
        • 2.2.2 YAPI 部署
    • 三、验证
    • 四、FAQ
    • 总结

前言

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

一、部署规划

1.1 服务器规划

Server install version port 说明
CentOS7.2(10.20.10.61) MongoDB 4.4.6 8090 数据存储
CentOS7.2(10.20.10.62) YApi、nodejs、git YApi:1.9.1
nodejs:14.15.4
git:2.22.4
YApi:3000 API接口管理

当然,你也可以把 YApi、 MongoDB 部署在同一台服务器上。

1.2 资源下载

  • MongoDB
  • YAPI
  • nodejs
  • git
  • git源码包

二、部署

2.1 MongoDB 部署

2.1.1 安装服务

1、下载相应资源包

点击【Download】下载到本地后再上传至服务器
或者点击【Copy Link】直接wget进行下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.6.tgz

YAPI 管理平台部署_第1张图片

2、解压

tar -xzf mongodb-linux-x86_64-rhel70-4.4.6.tgz -C /usr/local/
cd /usr/local/
mv mongodb-linux-x86_64-rhel70-4.4.6/ mongodb4.4.6

3、添加环境变量

vim /etc/profile
export PATH=/usr/local/mongodb4.4.6/bin:$PATH

source /etc/profile  # 使环境变量生效

4、相关数据目录

mkdir -p /data/mongodb/{data,logs}
touch /data/mongodb/logs/mongodb.log

# data:数据目录
# logs:日志目录

5、修改配置文件

cd /usr/local/mongodb4.4.6
vim mongodb.conf
--------------------------------------
port=8090
bind_ip=0.0.0.0
dbpath=/data/mongodb/data
logpath=/data/mongodb/logs/mongodb.log
logappend=true
fork=true

# port:自定义端口
# bind_ip:允许远程IP连接
# dbpath:数据路径
# logpath:日志路径
# logappend:可追加日志
# fork:后台运行

6、配置systemctl管理

cd /usr/lib/systemd/system/
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mongodb4.4.6/bin/mongod --config /usr/local/mongodb4.4.6/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb4.4.6/bin/mongod --shutdown --config /usr/local/mongodb4.4.6/mongodb.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

7、启动

systemctl start mongodb.service
systemctl enable mongodb.service

8、登陆验证

mongo  IP地址[:端口]
mongo 10.20.10.61:8090

YAPI 管理平台部署_第2张图片

2.1.2 创建数据

1、创建数据库:YAPI数据存储

use <DATABASE_NAME>   # 不存在则创建
db                    # 查看当前所在数据库
show dbs              # 查看所有数据库
use yapi              # 创建yapi数据库,用于存储数据

2、创建管理用户:MongoDB管理用户

use admin    # 管理员需要在admin数据库下创建,所以我们需要切换到admin数据库。
db.system.users.find()   # 查看admin中的用户

# 在MongoDB中可以使用db.createUser({用户信息})函数创建用户:
db.createUser({
    user: "",
    pwd: "",
    customData: { <any information> },
    roles: [
        { role: "", db: "" } | "",
        ...
    ]
});
# 说明:
1)user:新建用户名。
2)pwd:新建用户密码。
3)customData:存放一些用户相关的自定义数据,该属性也可忽略。
4)roles:数组类型,配置用户的权限。
db.createUser({user:'root',pwd:'xxxxx',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})

3、创建程序用户:YAPI连接用户(读写权限)

先use命令切换至yapi数据库。如果该库不存在,那么则会创建该数据库。
use yapi
db.createUser({user:'yapiuser',pwd:'xxxxx',roles:[{role:'readWrite',db:'yapi'}]})

至此,数据库、管理用户/密码(管理权限)、普通用户/密码(读写权限),接下来只需在 yapi 的配置文件(config.json)配置好连接 MongoDB 的数据库名、数据库用户、数据库用户密码,一定一定要写对哦,否则是无法连接 MongoDB 数据库的。

其他

1、MongoDB 权限

1. 数据库用户角色:read、readWrite;  
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;       
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root  
# 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system

【说明】
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

2、用户认证

在默认的情况下MongoDB是不开启用户认证的。如果我们添加用户,那么需要开启用户认证机制。通过修改mongodb.conf配置文件,在文件中添加 auth=true 即可。

db.auth(‘用户名’,’密码’)

# 认证函数:返回1成功,0则失败

2.2 YAPI 部署

2.2.1 YAPI 特点
  • 基于 Json5 和 Mockjs 定义接口返回数据的结构和文档,效率提升多倍;
  • 扁平化权限设计,即保证了大型企业级项目的管理,又保证了易用性;
  • 自动化测试,支持对 Response 断言;
  • MockServer 除支持普通的随机 mock 外,还增加了 Mock 期望功能,根据设置的请求过滤规则,返回期望数据;
  • 支持 postman, har, swagger 数据导入;
  • 免费开源,内网部署。
2.2.2 YAPI 部署

方式一:可视化部署

即 web UI 点点操作(本人不太喜欢这种操作,容易出错,不可控)

nodejs 环境

1、nodejs

tar xf node-v14.17.3-linux-x64.tar.xz -C /usr/local/
cd /usr/local/
mv node-v14.15.4-linux-x64 nodejs
vim /etc/profile
-------------------------------------------------------
export NODE_HOME=/usr/local/nodejs
export PATH=$PATH:$NODE_HOME/bin
-------------------------------------------------------
source /etc/profile

# 作用于YAPI源码(yapi需要NodeJs环境,进行编译部署)

2、YAPI

npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server    # 前台执行,点击下图【开始部署】时会在终端打出相关日志

浏览器访问 http://10.20.10.62:9090/ 进行可视化部署

YAPI 管理平台部署_第3张图片

如果执行正常,则会返回相应的初始化账户密码(但我的报错了)
报错:这里的报错尚未解决,已解决的小伙伴评论区留言。

YAPI 管理平台部署_第4张图片

方式二:源码编译部署

官网部署

nodejs 环境(安装在方式一已介绍)

1、git

tar xzf git-2.22.4.tar.gz -C /usr/local/
cd /usr/local/
mv git-2.22.4 git
vim /etc/profile
-----------------------------------------
export GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
-----------------------------------------
source /etc/profile

# 用于拉取YAPI源码

2、创建安装目录

mkdir -p /data/yapi/install_path

3、clone 源码

cd /data/yapi/install_path
git clone --depth=1 https://github.com/YMFE/yapi.git vendors

# --depth=1:克隆下包含最近一次commit的一个分支(而不是整个commit)
# vendors:clone github主目录当前的源码到vendors目录下(自动生成)
# 或者下载 zip 包解压到 vendors 目录
# git clone https://github.com/YMFE/yapi.git vendors  比较太,非常慢。

4、修改配置文件(连接数据库)

cd /data/yapi/install_path
cp ./vendors/config_example.json ./config.json
vim config.json   # 看下图

YAPI 管理平台部署_第5张图片

5、install

cd /data/yapi/install_path/vendors
npm install --production --registry https://registry.npm.taobao.org

# which npm 看看路径

6、程序初始化

npm run install-server

# 初始化用户名/密码

YAPI 管理平台部署_第6张图片

7、启动 YAPI

npm install -g pm2
pm2 start /data/yapi/install_path/vendors/server/app.js

# 启动:pm2 start /data/yapi/install_path/vendors/server/app.js
# 关闭:pm2 stop /data/yapi/install_path/vendors/server/app.js
# node server/data/yapi/install_path/vendors/server/app.js 这也是一种启动方式,但是这种启动方式是前台启动,当你关闭ssh窗口的时候,程序也就随之关闭了,所以需要改为后台运行,这里可以使用pm2进行管理。

YAPI 管理平台部署_第7张图片

三、验证

浏览器访问URL:http://10.20.10.62:3000/

YAPI 管理平台部署_第8张图片

YAPI 管理平台部署_第9张图片

可以正常登陆并创建和管理 api 数据,至此 YAPI 成功部署完成!!

四、FAQ

1、配置文件config.json

  • git clone https://github.com/YMFE/yapi.git vendors 或者下载 zip 包解压到 vendors
  • cp vendors/config_example.json ./config.json
    注意,这个config.json配置文件没在 vendors 目录下,而是在 vendor 目录的上一级目录

2、No matching version found for xxx

npm install --production --registry https://registry.npm.taobao.org 时报错,具体如下。

npm ERR! code ETARGET
npm ERR! notarget No matching version found for [email protected].
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget 
npm ERR! notarget It was specified as a dependency of 'vendors'
npm ERR! notarget 

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-12-29T14_20_27_670Z-debug.log

解决方案

  • 查看模块注册信息

    npm view dif
    

    YAPI 管理平台部署_第10张图片

  • 安装上图红框对应的模块版本

    npm install https://registry.npmjs.org/dify/-/dify-1.0.6.tgz
    
  • 安装后再次执行 npm install --production --registry https://registry.npm.taobao.org 即可

总结

  • 什么是 yapi ?

    即接口管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。

  • yapi 特点

    高效性、易用性、免费开源。

  • yapi 安装注意点

    nodejs环境;

    两种安装方式,可视化安装源码编译安装

    可视化安装容易出错,不灵活,建议源码安装;

    git clone 源码时由于仓库数据较大,可添加–depth=1,来克隆下包含最近一次commit的一个分支。

  • 什么是 MongoDB?

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

  • MongoDB 特点

    面向文档存储;

    安装简单 ;

    扩展性强;

    支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言;

    支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

  • MongoDB 安装注意点

    比较简单,基本上不会出错。

  • 其他注意点

    端口:如果是云服务器部署,记得开放端口;
    防火墙:关闭firewalld
    selinux:关闭SELINUX

<点击跳转至开头>

你可能感兴趣的:(Linux,综合,数据库,linux,api,运维)