- 
                Notifications
    
You must be signed in to change notification settings  - Fork 105
 
Description
[任务] 重构Docs 相关的API,并迁移到Mega系统中
[任务分值] 40 分
[背景描述]
当前系统中的项目文档功能(Project Docs) 仍依赖于一套由 Node.js 服务 提供中间层的旧版 API。
随着 Mega 系统 的功能不断完善,文档模块需要与代码仓库进行集成。
为了解决这些问题,需要将原有 Node.js 实现的文档接口迁移至 Mega 系统后端(Rust)中,实现完全替换。
[需求描述]
目前与Docs 相关的API 有以下这些:
- 获取
 
- 
GET
/organizations/{org_slug}/notes
获取笔记 - 
GET
/organizations/{org_slug}/notes/{noteId}
按笔记ID获取笔记 - 
GET
/organizations/{org_slug}/notes/{noteId}/comments
获取笔记评论 - 
GET
/organizations/{org_slug}/notes/{noteId}/attachments/{attachmentId}/comments
获取笔记附件评论 - 
GET
/organizations/{org_slug}/notes/{noteId}/views
获取笔记视图 - 
GET
/organizations/{org_slug}/notes/{noteId}/timeline-events
获取笔记时间线 - 
GET
/organizations/{org_slug}/notes/{noteId}/permissions
获取笔记权限 
- 修改
 
- 
PUT
/organizations/{org_slug}/notes/{noteId}
更新笔记 - 
PUT
/organizations/{org_slug}/notes/{noteId}/visibility
更新笔记可见性 - 
PUT
/organizations/{org_slug}/notes/{noteId}/project-permissions
更新笔记项目权限 
- 创建
 
- 
POST
/organizations/{org_slug}/notes
创建笔记 - 
POST
/organizations/{org_slug}/notes/{noteId}/comments
创建笔记评论 - 
POST
/organizations/{org_slug}/notes/{noteId}/views
创建笔记视图 - 
POST
/organizations/{org_slug}/notes/{noteId}/pin
置顶笔记 - 
POST
/organizations/{org_slug}/notes/{noteId}/follow-up
创建笔记跟进 - 
POST
/organizations/{org_slug}/notes/favorite
收藏笔记 - 
POST
/organizations/{org_slug}/notes/{noteId}/attachments
创建笔记附件 
- 删除
 
- 
DELETE
/organizations/{org_slug}/notes/{noteId}
删除笔记 - 
DELETE
/organizations/{org_slug}/notes/{noteId}/permissions/{permissionId}
删除笔记权限 - 
DELETE
/organizations/{org_slug}/notes/{noteId}/project-permissions
删除笔记项目权限 - 
DELETE
/organizations/{org_slug}/notes/{noteId}/favorite
取消笔记收藏 
- API 替换与兼容
 
- 在 Mega 后端实现一套新的文档 API,涵盖原有 Node.js 版本的核心功能,包括:
 - 获取文档目录;
 - 获取文档详情;
 - 创建 / 更新 / 删除文档;
 - 搜索文档。
 - 保持与前端的请求结构兼容(或提供适配层),确保迁移后前端逻辑无需大幅修改。
 - Node.js 文档服务迁移完成后下线,不再依赖旧的 Node 服务。
 
- 数据来源与存储方式
 
- 文档内容存储在 Mega 管理的项目仓库中(例如 /docs 目录下的 Markdown 文件)。
 - 后端通过 Git 操作读取、更新、提交文档文件,实现版本化管理。
 - 支持根据分支或 Tag 查看对应版本的文档。
 
- 前端交互与兼容性
 
- 前端调用的接口路径和返回格式应尽量保持一致。
 
- 迁移计划
 
- 第一步:在 Mega 中开发并验证新文档 API 功能;
 - 第二步:前端切换到新 API;
 - 第三步:下线旧 Node.js 文档服务。
 
[代码标准]
- 所有 PR 提交必须签署 
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过 
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;
 
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
 
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma [email protected]
 - Tianxing Ye [email protected]
 
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核
 
Metadata
Metadata
Assignees
Type
Projects
Status