# 写在前面---rap2搭建的必要性
* rap2是阿里妈妈团队开发的一款可视化api接口文档平台
* postman,insomnia 等接口测试工具和rap2 不冲突,rap2 只是辅助帮助开发同学进行开发的一个便捷工具
* rap2 实现了协同开发,共同维护一个项目的接口文档,前后端都可以进行数据的mock
* 无需前端同学在项目中使用mock.js,直接可以调用平台mock的接口
* rap2 可以直接导出接口到postman中进行接口测试
## 过程文档(本过程在CentOS 服务器搭建,step与本地环境搭建 同步)
### 0.运行环境
node.js 8.9.4+
mysql 5.7+
redis 4.0+
centos 6.5(阿里云ECS)
### 1.后端服务部署
* 拉取代码到服务器指定目录,我们这里放在服务器/data0/rap2文件夹下
```
cd /data0/rap2
git clone https://github.com/thx/rap2-delos.git
```
* 修改拉取的项目的配置文件
修改这几个文件的配置config.dev.ts、config.local.ts、config.prod.ts,位置在rap2-delos/src/config三个文件都照如下修改好
```
import { IConfigOptions } from "../types";
let config: IConfigOptions = {
version: '2.3',
serve: {
port: 8005 //你自己设置的端口,我是设置的8888
},
keys: ['some secret hurr'],
session: {
key: 'rap2:sess'
},
db: {
dialect: 'mysql',
host: 'localhost', //mysql服务器的ip,这里我是用的本地的mysql
port: 3306,
username: 'root', //mysql用户名
password: 'root', //mysql密码
database: 'RAP2_DELOS_APP', //rap2的后台数据库名
pool: {
max: 5,
min: 0,
idle: 10000
},
logging: false
},
redis:{
host: 'localhost',
port: 6379
}
}
export default config
```
* 修改完成之后,在上述配置的数据库上建立rap2的数据库:RAP2_DELOS_APP
```
mysql -u root -p xxx(密码)
DROP DATABASE RAP2_DELOS_APP;
CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
```
* 安装依赖
在项目根目录rap-delos下运行npm install,可能会出现什么gcc版本过低等问题,可百度去升级
* 初始化数据库(如果node版本低于8版本运行此命令就会报错,需要升级node版本)
根目录下运行 npm run create-db,初始化RAP2_DELOS_APP数据库
* 编译并运行
```
npm run build
npm run dev
```
* 正常结果截图

* 浏览器访问效果截图(你的服务器ip://8005)

### 2.前端可视化上线
* 下载源码
注意:如果我们直接在服务器上个拉取前端代码,在服务器上run build 会报错,报错截图如下

The build failed because the process exited too early. This probably means the system ran out of memory
or someone called kill -9 on the process.*****
由于rap2是阿里妈妈的项目,前端必然会使用react,解决方案自然也从react官网得到了应征。所以我们采用在本地修改配置文件并且打包后运行
的方案解决这个问题,在我们本地clone 前端项目,并且zip包rz到我们的服务器上来,后续我们进行nginx配置即可
```
git clone https://github.com/thx/rap2-dolores.git
```
* 修改config.dev.ts的配置
在rap2-dolores/src/config/ 路径下,修改serve对应的值。默认为'localhost:8080',修改成后端服务器的ip(guozimo.top)+之
前配置的端口(8005)
* 安装依赖 npm install
* 编译后上传到服务器上 npm run build
* nginx 配置域名(监听3000端口)
```
server {
listen 3000;
listen guozimo.top:3000;
server_name guozimo.top alias another.alias;
location / {
root /data0/rap2/rap2-dolores/build;
index index.html index.html;
try_files $uri $uri/ /index.html;
}
}
```
* 线上访问

# 参考文献:
* -[centos安装8版本以上node](https://www.jianshu.com/p/2da3e3c6b8ac)
* -[rap2搭建过程文档](https://blog.youkuaiyun.com/msqplt/article/details/81450300)
* -[react报错故障排查文档](https://www.html.cn/create-react-app/docs/troubleshooting/)