This commit is contained in:
168
docs/technical/RUST_API_SERVER_ROUTE_INDEX_2026-04-22.md
Normal file
168
docs/technical/RUST_API_SERVER_ROUTE_INDEX_2026-04-22.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# Rust API Server 路由索引(2026-04-23)
|
||||
|
||||
更新时间:`2026-04-23`
|
||||
|
||||
## 1. 文档目标
|
||||
|
||||
本文件记录当前 `server-rs/crates/api-server/src/app.rs` 中已挂载的 Rust Axum 路由面,用于对照 Node 后端 `96` 条路由能力基线。
|
||||
|
||||
本文件只做路由索引,不替代单个阶段的设计文档;接口字段、权限、错误模型仍以各阶段技术方案和 `shared-contracts` 为准。
|
||||
|
||||
## 2. 当前统计
|
||||
|
||||
当前 Rust `api-server` 从 `app.rs` 可抽取到 `101` 条路由:
|
||||
|
||||
1. 管理后台接口:`5` 条。
|
||||
2. 内部鉴权调试接口:`2` 条。
|
||||
3. AI task 接口:`9` 条。
|
||||
4. assets / OSS 接口:`15` 条。
|
||||
5. auth 接口:`12` 条。
|
||||
6. custom world / agent 接口:`23` 条。
|
||||
7. llm proxy 接口:`1` 条。
|
||||
8. profile / runtime profile 接口:`12` 条。
|
||||
9. runtime story / story gameplay 接口:`15` 条。
|
||||
10. legacy generated 静态路径兼容:`6` 条。
|
||||
11. health check:`1` 条。
|
||||
|
||||
## 3. 路由清单
|
||||
|
||||
### 3.1 管理后台
|
||||
|
||||
1. `GET /admin`
|
||||
2. `POST /admin/api/login`
|
||||
3. `GET /admin/api/me`
|
||||
4. `GET /admin/api/overview`
|
||||
5. `POST /admin/api/debug/http`
|
||||
|
||||
### 3.2 内部鉴权调试
|
||||
|
||||
1. `GET /_internal/auth/claims`
|
||||
2. `GET /_internal/auth/refresh-cookie`
|
||||
|
||||
### 3.3 AI Task
|
||||
|
||||
1. `POST /api/ai/tasks`
|
||||
2. `POST /api/ai/tasks/{task_id}/start`
|
||||
3. `POST /api/ai/tasks/{task_id}/cancel`
|
||||
4. `POST /api/ai/tasks/{task_id}/complete`
|
||||
5. `POST /api/ai/tasks/{task_id}/fail`
|
||||
6. `POST /api/ai/tasks/{task_id}/chunks`
|
||||
7. `POST /api/ai/tasks/{task_id}/references`
|
||||
8. `POST /api/ai/tasks/{task_id}/stages/{stage_kind}/start`
|
||||
9. `POST /api/ai/tasks/{task_id}/stages/{stage_kind}/complete`
|
||||
|
||||
### 3.4 Assets / OSS
|
||||
|
||||
1. `POST /api/assets/direct-upload-tickets`
|
||||
2. `POST /api/assets/sts-upload-credentials`
|
||||
3. `POST /api/assets/objects/confirm`
|
||||
4. `POST /api/assets/objects/bind`
|
||||
5. `GET /api/assets/read-url`
|
||||
6. `POST /api/assets/character-visual/generate`
|
||||
7. `GET /api/assets/character-visual/jobs/{task_id}`
|
||||
8. `POST /api/assets/character-visual/publish`
|
||||
9. `POST /api/assets/character-animation/generate`
|
||||
10. `GET /api/assets/character-animation/jobs/{task_id}`
|
||||
11. `POST /api/assets/character-animation/publish`
|
||||
12. `POST /api/assets/character-animation/import-video`
|
||||
13. `GET /api/assets/character-animation/templates`
|
||||
14. `GET /api/assets/character-workflow-cache/{character_id}`
|
||||
15. `GET / POST /api/assets/character-workflow-cache`
|
||||
|
||||
### 3.5 Auth
|
||||
|
||||
1. `GET /api/auth/login-options`
|
||||
2. `GET /api/auth/me`
|
||||
3. `POST /api/auth/logout`
|
||||
4. `POST /api/auth/logout-all`
|
||||
5. `GET /api/auth/sessions`
|
||||
6. `POST /api/auth/refresh`
|
||||
7. `POST /api/auth/phone/send-code`
|
||||
8. `POST /api/auth/phone/login`
|
||||
9. `GET /api/auth/wechat/start`
|
||||
10. `GET /api/auth/wechat/callback`
|
||||
11. `POST /api/auth/wechat/bind-phone`
|
||||
12. `POST /api/auth/entry`
|
||||
|
||||
### 3.6 Custom World / Agent
|
||||
|
||||
1. `GET /api/runtime/custom-world-library`
|
||||
2. `GET /api/runtime/custom-world-library/{profile_id}`
|
||||
3. `POST /api/runtime/custom-world-library/{profile_id}/publish`
|
||||
4. `POST /api/runtime/custom-world-library/{profile_id}/unpublish`
|
||||
5. `GET /api/runtime/custom-world-gallery`
|
||||
6. `GET /api/runtime/custom-world-gallery/{owner_user_id}/{profile_id}`
|
||||
7. `GET /api/runtime/custom-world/works`
|
||||
8. `POST /api/runtime/custom-world/agent/sessions`
|
||||
9. `GET /api/runtime/custom-world/agent/sessions/{session_id}`
|
||||
10. `POST /api/runtime/custom-world/agent/sessions/{session_id}/messages`
|
||||
11. `GET /api/runtime/custom-world/agent/sessions/{session_id}/messages/stream`
|
||||
12. `GET /api/runtime/custom-world/agent/sessions/{session_id}/operations/{operation_id}`
|
||||
13. `GET /api/runtime/custom-world/agent/sessions/{session_id}/cards/{card_id}`
|
||||
14. `POST /api/runtime/custom-world/agent/sessions/{session_id}/actions`
|
||||
15. `POST /api/custom-world/entity`
|
||||
16. `POST /api/runtime/custom-world/entity`
|
||||
17. `POST /api/custom-world/scene-npc`
|
||||
18. `POST /api/runtime/custom-world/scene-npc`
|
||||
19. `POST /api/custom-world/scene-image`
|
||||
20. `POST /api/custom-world/cover-image`
|
||||
21. `POST /api/custom-world/cover-upload`
|
||||
22. `POST /api/runtime/custom-world/cover-image`
|
||||
23. `POST /api/runtime/custom-world/cover-upload`
|
||||
|
||||
### 3.7 LLM Proxy
|
||||
|
||||
1. `POST /api/llm/chat/completions`
|
||||
|
||||
### 3.8 Profile / Runtime Profile
|
||||
|
||||
1. `GET /api/profile/dashboard`
|
||||
2. `GET /api/runtime/profile/dashboard`
|
||||
3. `GET /api/profile/play-stats`
|
||||
4. `GET /api/runtime/profile/play-stats`
|
||||
5. `GET /api/profile/wallet-ledger`
|
||||
6. `GET /api/runtime/profile/wallet-ledger`
|
||||
7. `GET /api/profile/browse-history`
|
||||
8. `GET /api/runtime/profile/browse-history`
|
||||
9. `GET /api/profile/save-archives`
|
||||
10. `GET /api/runtime/profile/save-archives`
|
||||
11. `POST /api/profile/save-archives/{world_key}`
|
||||
12. `POST /api/runtime/profile/save-archives/{world_key}`
|
||||
|
||||
### 3.9 Runtime Story / Gameplay
|
||||
|
||||
1. `POST /api/runtime/save/snapshot`
|
||||
2. `GET /api/runtime/settings`
|
||||
3. `GET /api/runtime/story/state/{session_id}`
|
||||
4. `POST /api/runtime/story/state/resolve`
|
||||
5. `POST /api/runtime/story/actions/resolve`
|
||||
6. `POST /api/runtime/story/initial`
|
||||
7. `POST /api/runtime/story/continue`
|
||||
8. `POST /api/story/sessions`
|
||||
9. `POST /api/story/sessions/continue`
|
||||
10. `GET /api/story/sessions/{story_session_id}/state`
|
||||
11. `POST /api/story/battles`
|
||||
12. `POST /api/story/battles/resolve`
|
||||
13. `GET /api/story/battles/{battle_state_id}`
|
||||
14. `POST /api/story/npc/battle`
|
||||
15. `GET /api/runtime/sessions/{runtime_session_id}/inventory`
|
||||
|
||||
### 3.10 Legacy Generated 路径
|
||||
|
||||
1. `GET /generated-character-drafts/{*path}`
|
||||
2. `GET /generated-characters/{*path}`
|
||||
3. `GET /generated-animations/{*path}`
|
||||
4. `GET /generated-custom-world-scenes/{*path}`
|
||||
5. `GET /generated-custom-world-covers/{*path}`
|
||||
6. `GET /generated-qwen-sprites/{*path}`
|
||||
|
||||
### 3.11 Health
|
||||
|
||||
1. `GET /healthz`
|
||||
|
||||
## 4. 维护规则
|
||||
|
||||
1. 新增、删除或改名 Rust 路由时,必须同步更新本索引。
|
||||
2. 如果 Rust 后端公开能力面发生变化,必须同时更新本索引、当前后端实现基线与对应阶段任务清单。
|
||||
3. 任何 breaking route change 都必须先更新阶段设计文档,再改代码。
|
||||
4. 真实切流前,必须用本索引对照代理层、前端调用面和 smoke 清单,避免只完成编译而遗漏外部可访问路径。
|
||||
Reference in New Issue
Block a user