rap2是一个开源接口管理工具,比较方便接口调试,不过搭建比较麻烦,需要后端数据库的一些知识。
RAP2 是前后端分离部署的,相应的它分成了两个项目,分别的github地址如下:
后端api服务:https://github.com/thx/rap2-delos
前端:https://github.com/thx/rap2-dolores
将这两个项目fork到本地
① 准备工作
后端api服务的搭建需要:
Node.js 8.9.4+
MySQL 5.7+
redis 4.0+
node的安装就不说了,主要是mysql和redis的安装
1、mysql下载网址:https://dev.mysql.com/downloads/mysql/
安装完后需要将mysql加入系统环境变量:
(1).进入/usr/local/mysql/bin,查看此目录下是否有mysql,见pic6。
(2).执行vim ~/.bash_profile
在该文件中添加mysql/bin的目录,见pic7:
PATH=$PATH:/usr/local/mysql/bin
添加完成后,按esc,然后输入wq保存。
最后在命令行输入source ~/.bash_profile
执行mysql -uroot -p,输入自己安装时设置的密码即可,看到mysql的命令行就安装成功了
如果希望数据库可视化可以使用sequelpro,这里需要使用测试的版本,不然会有bug,下载地址 https://sequelpro.com/test-builds ,登录如下
2、redis
mac直接brew install redis,然后输入下面的命令即可启动redis
/usr/local/bin/redis-server /usr/local/etc/redis.conf
下面代表启动成功
正式搭建
一、搭建后端api服务(delos)
先创建数据库
命令行进入mysql,输入命令(注意分号不能少)
CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
同时更改一下mysql的配置(不然会报错)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库密码';
FLUSH PRIVILEGES;//刷新一下
然后进入delos项目,将src/config/config.dev.ts下
db: { # 下面是mysql的配置
dialect: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '123456789',
database: 'rap2_delos_app',
pool: {
max: 5,
min: 0,
idle: 10000,
},
logging: false,
},
将这里面的password改成自己数据库的密码
运行以下命令
# 初始化
npm install
# 安装 && TypeScript编译
npm install -g typescript
npm run build
# 初始化数据库
npm run create-db
正常应该就会在数据库里建好对应的表了
注意还需要安装pm2(因为后端使用的是pm2后台守护进程),npm i -g pm2
之后运行npm start,此时输入127.0.0.1:8080应该会显示下面这行字
RAP2后端服务已启动,请从前端服务(rap2-dolores)访问。 RAP2 back-end server is started, please visit via front-end service (rap2-dolores).
二、前端部署(Dolores)
前端相对简单
# 修改src/config/config.prod.js中的server地址
-----------------------------------------------------
module.exports = {
serve: 'http://127.0.0.1:8080', # 这里填后端的地址,一定要填ip
keys: ['some secret hurr'],
session: {
key: 'koa:sess'
}
}
-----------------------------------------------------
# 进入项目文件中执行命令,初始化
npm install
# 编译构建build文件夹
npm run build
# 推荐直接用pm2来启动静态文件服务器,这样后端服务和前端服务都用pm2管理,更方便,pm2更强大。
# ./build为静态文件夹,8082指定为监听端口,--name 指定一个name,--watch则可以监听文件变化,自动变化。非常强大。
pm2 serve ./build 8082 --name rap2-dolores --watch
这时候打开127.0.0.1:8082应该就可以使用了。
如果后端接口报错,后端项目中运行如下两个命令可以debug
npm run clean
NODE_ENV=production node dist/dispatch.js
我这边会遇到一个问题是提示我rap数据库找不到,但是应该使用的是RAP2_DELOS_APP_LOCAL这个数据库,不知道哪里出了问题,解决方案是将RAP2_DELOS_APP_LOCAL这个数据库复制了一份到新建的rap数据库,即可正常使用。
问题二:连接不上数据库,解决方案是在数据库配置文件(/etc/my.cnf)中先设置skip-grant-tables跳过密码验证(风险比较高,这样所有人都可以进入你的数据库),然后重启数据库(service mysqld start/stop),还未完美解决
附数据库备份方法:(参考https://blog.csdn.net/qq30211478/article/details/76977275 ,https://blog.csdn.net/helloxiaozhe/article/details/77680255 )
首先,使用CREATE DATABASE语句创建一个新的数据库。
其次,使用mysqldump工具导出要复制的数据库的所有数据库对象和数据。
第三,将SQL转储文件导入新的数据库。
作为一个演示,假设要把yiibaidb数据库复制到yiibaidb_backup数据库:
步骤1, 创建yiibaidb_backup数据库:
首先,登录到MySQL数据库服务器:
C:\Users\Administrator> mysql -u root -p
Enter password: **********
然后,使用CREATE DATABASE语句如下:
CREATE DATABASE yiibaidb_backup;
第三,使用SHOW DATABASES命令验证:
SHOW DATABASES
步骤2
使用mysqldump工具将数据库对象和数据转储到SQL文件中。
假设要将数据库对象和数据库转储到位于D:\database_bak文件夹的SQL文件中,这里是以下命令:
C:\Users\Administrator> mysqldump -u root -p yiibaidb > d:\database_bak\yiibaidb.sql
Enter password: **********
基本上,此命令指示mysqldump使用具有密码的root用户帐户登录到MySQL服务器,并将数据库对象和yiibaidb数据库的数据导出到d:\database_bak\yiibaidb.sql。 请注意,运算符(>)表示导出。
步骤2
将d:\database_bak\yiibaidb.sql文件导入到yiibaidb_backup数据库。
C:\Users\Administrator> mysql -u root -p yiibaidb_backup < d:\database_bak\yiibaidb.sql
Enter password: **********
请注意,运算符(<)表示导入。
要验证导入,可以使用SHOW TABLES命令快速检查。
mysql> SHOW TABLES FROM yiibaidb_backup;
---------------------