{"id":13527129,"url":"https://github.com/thx/rap2-delos","last_synced_at":"2025-04-01T09:31:07.830Z","repository":{"id":37549296,"uuid":"111790807","full_name":"thx/rap2-delos","owner":"thx","description":"阿里妈妈前端团队出品的开源接口管理工具RAP第二代","archived":false,"fork":false,"pushed_at":"2023-04-07T09:38:53.000Z","size":512,"stargazers_count":7649,"open_issues_count":97,"forks_count":1350,"subscribers_count":283,"default_branch":"master","last_synced_at":"2024-11-02T12:34:13.366Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rap2.taobao.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-11-23T09:40:13.000Z","updated_at":"2024-11-02T07:32:48.000Z","dependencies_parsed_at":"2022-07-14T04:00:37.628Z","dependency_job_id":"a395e096-8772-427c-8c4f-1c5f562a355e","html_url":"https://github.com/thx/rap2-delos","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thx%2Frap2-delos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thx%2Frap2-delos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thx%2Frap2-delos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thx%2Frap2-delos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thx","download_url":"https://codeload.github.com/thx/rap2-delos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246615966,"owners_count":20806035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:41.742Z","updated_at":"2025-04-01T09:31:07.406Z","avatar_url":"https://github.com/thx.png","language":"TypeScript","funding_links":[],"categories":["Repository","TypeScript","服务端测试","API Management"],"sub_categories":["API Management","接口管理及测试"],"readme":"# RAP2-DELOS 开源社区版本 (后端 API 服务器)\n\n\u003e 阿里妈妈 THX 团队新项目 GoGoCode：https://github.com/thx/gogocode 给批量修改项目代码减轻痛苦！\n\nRAP2 是在 RAP1 基础上重做的新项目，它能给你提供方便的接口文档管理、Mock、导出等功能，包含两个组件(对应两个 Github Repository)。\n\n- rap2-delos: 后端数据 API 服务器，基于 Koa + MySQL[link](http://github.com/thx/rap2-delos)\n- rap2-dolores: 前端静态资源，基于 React [link](http://github.com/thx/rap2-dolores)\n\n\n**Rap 官方服务站点，无需安装直接体验: [rap2.taobao.org](http://rap2.taobao.org)**\n\n**Rap 官方服务站点（rap2.taobao.org）系统维护完成相关编辑功能已恢复使用**\n\n注意：本工具为开发工具，相关API未做任何XSS等安全验证，请勿在生产环境依赖RAP的任何服务！！！\n\n**有急事来官方钉钉群，响应更迅速: 31626736 (二群，一群已满）**\n\n2019-10-31：现已支持 Docker 一键部署，欢迎大家体验\u0026反馈\n\n2019-09-27：更新的用户请注意按照下面指引安装 pandoc 以启用文档导出功能\n\n\n## 推荐使用 Docker 快速部署\n\n### 安装 Docker\n\n国内用户可参考 [https://get.daocloud.io/](https://get.daocloud.io/) 安装 Docker 以及 Docker Compose (Linux 用户需要单独安装)，建议按照链接指引配置 Docker Hub 的国内镜像提高加载速度。\n\n### 配置项目\n\n在任意地方建立目录 rap\n\n把本仓库中的 [docker-compose.yml](https://raw.githubusercontent.com/thx/rap2-delos/master/docker-compose.yml) 放到 rap 目录中\n\nRap 前端服务的端口号默认为 3000，你可以在 docker-compose.yml 中按照注释自定义\n\n在 rap 目录下执行下面的命令：\n\n```sh\n# 拉取镜像并启动\ndocker-compose up -d\n\n# 启动后，第一次运行需要手动初始化mysql数据库\n# ⚠️注意: 只有第一次该这样做\ndocker-compose exec delos node scripts/init\n\n# 部署成功后 访问\nhttp://localhost:3000 # 前端（可自定义端口号）\nhttp://localhost:38080 # 后端\n\n# 如果访问不了可能是数据库没有链接上，关闭 rap 服务\ndocker-compose down\n# 再重新运行\ndocker-compose up -d\n# 如果 Sequelize 报错可能是数据库表发生了变化，运行下面命令同步\ndocker-compose exec delos node scripts/updateSchema\n```\n\n**⚠️注意：第一次运行后 rap 目录下会被自动创建一个 docker 目录，里面存有 rap 的数据库数据，可千万不要删除。**\n\n### 镜像升级\n\nRap 经常会进行 bugfix 和功能升级，用 Docker 可以很方便地跟随主项目升级\n\n```sh\n# 拉取一下最新的镜像\ndocker-compose pull\n# 暂停当前应用\ndocker-compose down\n# 重新构建并启动\ndocker-compose up -d --build\n# 有时表结构会发生变化，执行下面命令同步\ndocker-compose exec delos node scripts/updateSchema\n# 清空不被使用的虚悬镜像\ndocker image prune -f\n```\n\n## 手动部署\n\n### 环境要求\n\n- Node.js 8.9.4+\n- MySQL 5.7+\n- Redis 4.0+\n- pandoc 2.73 (供文档生成使用)\n\n### 开发模式\n\n#### 安装 MySQL 和 Redis 服务器\n\n请自行查找搭建方法，mysql/redis 配置在 config.\\*.ts 文件中，在不修改任何配置的情况下，\nredis 会通过默认端口 + 本机即可正常访问，确保 redis-server 打开即可。\n\n注意：修改 cofig 文件后需要重新 `npm run build` 才能生效\n\n#### 安装 pandoc\n\n我们使用 pandoc 来生成 Rap 的离线文档，安装 Pandoc 最通用的办法是在 pandoc 的 [release 页面](https://github.com/jgm/pandoc/releases/tag/2.7.3)下载对应平台的二进制文件安装即可。\n\n其中 linux 版本最好放在`/usr/local/bin/pandoc` 让终端能直接找到，并执行 `chmod +x /usr/local/bin/pandoc` 给调用权限。\n\n测试在命令行执行命令 `pandoc -h` 有响应即可。\n\n#### 启动redis-server\n\n```sh\nredis-server\n```\n\n后台执行可以使用 nohup 或 pm2，这里推荐使用 pm2，下面命令会安装 pm2，并通过 pm2 来启动 redis 缓存服务\n\n```bash\nnpm install -g pm2\nnpm run start:redis\n```\n\n#### 先创建创建数据库\n\n```bash\nmysql -e 'CREATE DATABASE IF NOT EXISTS RAP2_DELOS_APP DEFAULT CHARSET utf8 COLLATE utf8_general_ci'\n```\n\n#### 初始化\n\n```bash\nnpm install\n```\n\nconfirm configurations in /config/config.dev.js (used in development mode)，确认/config/config.dev.js 中的配置(.dev.js 后缀表示用于开发模式)。\n\n#### 安装 \u0026\u0026 TypeScript 编译\n\n```bash\nnpm install -g typescript\nnpm run build\n```\n\n#### 初始化数据库表\n\n```bash\nnpm run create-db\n```\n\n#### 执行 mocha 测试用例和 js 代码规范检查\n\n```bash\nnpm run check\n```\n\n#### 启动开发模式的服务器 监视并在发生代码变更时自动重启\n```bash\nnpm run dev\n```\n\n### 生产模式\n\n```sh\n# 1. 修改/config/config.prod.js中的服务器配置\n# 2. 启动生产模式服务器\nnpm start\n\n```\n\n## 社区贡献\n\n- [rap2-javabean 自动从 Rap 接口生成 Java Bean](https://github.com/IndiraFinish/rap2-javabean)\n- [rap2-generator 把 Java Bean 生成到 Rap](https://github.com/kings1990/rap2-generator)\n- [yapix 一键生成接口文档, 上传到yapi, rap2, eolinker等](https://github.com/jetplugins/yapix)\n\n## Author\n\n- 版权: 阿里妈妈前端团队\n- 作者:\n  - RAP2 2017/10 前版本作者为[墨智(@Nuysoft)](https://github.com/nuysoft/), [mockjs](mockjs.com)的作者。\n  - 2017/10 之后版本开发者\n    - [霍雍(Bosn)](http://github.com/bosn/)，[RAP1](http://github.com/thx/RAP)作者，RAP 最早的创始人。\n    - [承虎(alvarto)](http://github.com/alvarto/)\n    - [池冰(bigfengyu)](https://github.com/bigfengyu)\n\n### Tech Arch\n\n- 前端架构(rap2-dolores)\n  - React / Redux / Saga / Router\n  - Mock.js\n  - SASS / Bootstrap 4 beta\n  - server: nginx\n- 后端架构(rap2-delos)\n  - Koa\n  - Sequelize\n  - MySQL\n  - Server\n  - server: node\n\n### 旧版本升级\n    \n    -数据库数据迁移  RAP2 2.4迁移到2.8\n      由于数据库表有主外键，按以下顺序插入数据\n      1.Users\n      2.Organizations\n      3.Repositories\n      4.repositories_members（备注：将createdAt、updatedAt两个字段必填去除）\n      5.organizations_members\n      6.Modules\n      7.Interfaces\n      8.Loggers\n      9.Properties（备注：将数据scope字段的所有''值替换成'String'）\n      default_val和repositories_collaborators表无数据无需处理\n      \n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthx%2Frap2-delos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthx%2Frap2-delos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthx%2Frap2-delos/lists"}