Files
K12Study/docs/architecture/api-design.md
2026-04-16 18:12:09 +08:00

83 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API 设计(基础架构 + 业务功能)
## 1. API 设计原则
- 对外统一前缀:`/api/*`
- 统一响应结构:`code/message/data/traceId`,其中 `code=0` 表示成功,非 0 表示业务失败。
- 认证策略JWT + RBAC网关做统一鉴权透传。
- API 冻结点:
- 基础架构 API 在 M3 冻结。
- 业务 API 在 M5 冻结。
## 2. 基础架构 APIM3
### 2.1 认证域auth
- `POST /api/auth/tokens`(登录)
- `POST /api/auth/tokens/refresh`(刷新)
- `GET /api/auth/users/current`(当前用户)
### 2.2 权限与组织域upms
- `GET /api/upms/routes`
- `GET /api/upms/users/current`
- `GET /api/upms/areas`
- `GET /api/upms/tenants`
- `GET /api/upms/departments`
### 2.3 基础扩展 API建议补充
- 文件域
- `POST /api/upms/files/upload`
- `GET /api/upms/files/{fileId}`
- 站内消息域
- `GET /api/upms/messages/inbox`
- `POST /api/upms/messages/{messageId}/read`
## 3. 业务功能 APIM5
### 3.1 课程域course
- `POST /api/course/courses`
- `GET /api/course/courses/{courseId}`
- `POST /api/course/courses/{courseId}/chapters`
- `POST /api/course/knowledge-points`
- `POST /api/course/chapters/{chapterId}/knowledge-relations`
- `GET /api/course/students/{studentId}/mastery`
### 3.2 习题/作业/批改域question
- 题库与题目
- `POST /api/question/banks`
- `POST /api/question/questions`
- `POST /api/question/banks/{bankId}/questions/{questionId}`
- 试卷与作业
- `POST /api/question/papers`
- `POST /api/question/assignments`
- `POST /api/question/assignments/{assignmentId}/targets`
- 提交与批改
- `POST /api/question/submissions`
- `POST /api/question/submissions/{submissionId}/answers`
- `POST /api/question/grading/tasks`
- `GET /api/question/grading/tasks/{taskId}`
- 错题与复习
- `GET /api/question/wrong-questions`
- `POST /api/question/review/plans/generate`
- `POST /api/question/review/executions`
### 3.3 成就域achievement
- `POST /api/achievement/definitions`
- `POST /api/achievement/rules/templates`
- `GET /api/achievement/users/{userId}/records`
- `GET /api/achievement/users/{userId}/progress`
- `POST /api/achievement/events/trigger`
### 3.4 推荐域recommendation
- `POST /api/recommendation/tasks`
- `GET /api/recommendation/tasks/{taskId}/items`
- `POST /api/recommendation/items/{itemId}/feedback`
- `GET /api/recommendation/effects/daily`
### 3.5 AI 知识域ai
- `POST /api/ai/knowledge/files`
- `POST /api/ai/knowledge/files/{fileId}/sync`
- `GET /api/ai/knowledge/sync-tasks/{taskId}`
- `POST /api/ai/retrieval/query`
- `GET /api/ai/health`
## 4. API 阶段交付映射
- M3`auth + upms + file/message 基础扩展`
- M5`course + question + achievement + recommendation + ai`
- M6前后端按冻结 API 完成联调,不新增破坏性变更。