rap2-delos

by thx

阿里妈妈前端团队出品的开源接口管理工具RAP第二代

6.4K Stars 1.1K Forks Last release: 3 months ago (2.2.3) MIT License 215 Commits 6 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

RAP2-DELOS 开源社区版本 (后端 API 服务器)

Build Status

RAP2 是在 RAP1 基础上重做的新项目,它能给你提供方便的接口文档管理、Mock、导出等功能,包含两个组件(对应两个 Github Repository)。

  • rap2-delos: 后端数据 API 服务器,基于 Koa + MySQLlink
  • rap2-dolores: 前端静态资源,基于 React link

Rap 官方服务站点,无需安装直接体验: rap2.taobao.org

注意:本工具为开发工具,相关API未做任何XSS等安全验证,请勿在生产环境依赖RAP的任何服务!!!

有急事来官方钉钉群,响应更迅速: 11789704

2019-10-31:现已支持 Docker 一键部署,欢迎大家体验&反馈

2019-09-27:更新的用户请注意按照下面指引安装 pandoc 以启用文档导出功能

推荐使用 Docker 快速部署

安装 Docker

国内用户可参考 https://get.daocloud.io/ 安装 Docker 以及 Docker Compose (Linux 用户需要单独安装),建议按照链接指引配置 Docker Hub 的国内镜像提高加载速度。

配置项目

在任意地方建立目录 rap

把本仓库中的 docker-compose.yml 放到 rap 目录中

Rap 前端服务的端口号默认为 3000,你可以在 docker-compose.yml 中按照注释自定义

在 rap 目录下执行下面的命令:

# 拉取镜像并启动
docker-compose up -d

启动后,第一次运行需要手动初始化mysql数据库

⚠️注意: 只有第一次该这样做

docker-compose exec delos node scripts/init

部署成功后 访问

http://localhost:3000 # 前端(可自定义端口号) http://localhost:38080 # 后端

如果访问不了可能是数据库没有链接上,关闭 rap 服务

docker-compose down

再重新运行

docker-compose up -d

如果 Sequelize 报错可能是数据库表发生了变化,运行下面命令同步

docker-compose exec delos node scripts/updateSchema

⚠️注意:第一次运行后 rap 目录下会被自动创建一个 docker 目录,里面存有 rap 的数据库数据,可千万不要删除。

镜像升级

Rap 经常会进行 bugfix 和功能升级,用 Docker 可以很方便地跟随主项目升级

# 拉取一下最新的镜像
docker-compose pull
# 暂停当前应用
docker-compose down
# 重新构建并启动
docker-compose up -d --build
# 有时表结构会发生变化,执行下面命令同步
docker-compose exec delos node scripts/updateSchema
# 清空不被使用的虚悬镜像
docker image prune -f

手动部署

环境要求

  • Node.js 8.9.4+
  • MySQL 5.7+
  • Redis 4.0+
  • pandoc 2.73 (供文档生成使用)

开发模式

安装 MySQL 和 Redis 服务器

请自行查找搭建方法,mysql/redis 配置在 config.*.ts 文件中,在不修改任何配置的情况下, redis 会通过默认端口 + 本机即可正常访问,确保 redis-server 打开即可。

注意:修改 cofig 文件后需要重新

npm run build
才能生效

安装 pandoc

我们使用 pandoc 来生成 Rap 的离线文档,安装 Pandoc 最通用的办法是在 pandoc 的 release 页面下载对应平台的二进制文件安装即可。

其中 linux 版本最好放在

/usr/local/bin/pandoc
让终端能直接找到,并执行
chmod +x /usr/local/bin/pandoc
给调用权限。

测试在命令行执行命令

pandoc -h
有响应即可。

启动redis-server

redis-server

后台执行可以使用 nohup 或 pm2,这里推荐使用 pm2,下面命令会安装 pm2,并通过 pm2 来启动 redis 缓存服务

npm install -g pm2
npm run start:redis

先创建创建数据库

mysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci'

初始化

npm install

confirm configurations in /config/config.dev.js (used in development mode),确认/config/config.dev.js 中的配置(.dev.js 后缀表示用于开发模式)。

安装 && TypeScript 编译

npm install -g typescript
npm run build

初始化数据库表

npm run create-db

执行 mocha 测试用例和 js 代码规范检查

npm run check

启动开发模式的服务器 监视并在发生代码变更时自动重启

npm run dev

生产模式

# 1. 修改/config/config.prod.js中的服务器配置
# 2. 启动生产模式服务器
npm start

社区贡献

Author

Tech Arch

  • 前端架构(rap2-dolores)
    • React / Redux / Saga / Router
    • Mock.js
    • SASS / Bootstrap 4 beta
    • server: nginx
  • 后端架构(rap2-delos)
    • Koa
    • Sequelize
    • MySQL
    • Server
    • server: node

旧版本升级

-数据库数据迁移  RAP2 2.4迁移到2.8
  由于数据库表有主外键,按以下顺序插入数据
  1.Users
  2.Organizations
  3.Repositories
  4.repositories_members(备注:将createdAt、updatedAt两个字段必填去除)
  5.organizations_members
  6.Modules
  7.Interfaces
  8.Loggers
  9.Properties(备注:将数据scope字段的所有''值替换成'String')
  default_val和repositories_collaborators表无数据无需处理

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.