接口文档站
满足根
CLAUDE.md开发强制规范 #3(接口必有文档) 与 #5(接口必有日志+文档)。
真源在管理后台(可编辑),这里是导出落点
本项目所有 Expo / H5 ↔ FastAPI 接口的文档,可编辑真源是数据库表 app_api_docs,在**管理后台「接口文档」**里增删改查、发布(三栏 newapi.pro 风格:左分组 / 中正文 / 右示例,编辑页右侧实时预览)。
- 管理后台地址(生产):https://admin.weizhiqingtu.com(本地 dev:
cd apps/admin && npm run dev→ http://localhost:5174)。 - 本目录用途:管理后台
GET /api/admin/docs/export的导出落点——把已发布文档导出为:format=json:三栏站结构(分组 → 文档),可喂静态站渲染;format=markdown:拼接 md(见接口文档(导出快照).md)。
流程
flowchart LR
A[管理后台·接口文档<br/>增删改查/发布] --> B[(app_api_docs 表)]
B -->|GET /api/admin/docs/export| C[docs/接口文档/<br/>json / markdown 导出]
D[FastAPI 日志中间件] --> E[(app_api_logs 表)]
E -->|method+path 关联| B
F[管理后台·接口日志] -->|点日志「查看接口文档」| A
新增 / 改接口时(强制)
- 在管理后台「接口文档」补 / 改对应条目并发布;或改
server/scripts/seed_api_docs.py的DOCS后跑该脚本批量同步。 - 确认该接口在管理后台「接口日志」可见(中间件默认覆盖
/api全部路径,WS 记连接/断开)。 - 重新导出本目录快照(可选):
GET /api/admin/docs/export?format=markdown。
教师端文档站 = 独立项目 apps/docs(三栏,渲染本目录 md)
教师端把本目录的 markdown 渲染成独立的三栏接口文档站(左导航 / 中正文 / 右目录,newapi.pro 观感 + Verdana Health 设计 token):
- 项目:
project/apps/docs(Next.js 静态站,纯渲染本目录 md、不连后端、无鉴权)。 - 运行:
pnpm --filter @teacher/docs dev→ http://localhost:3002(生产teacher-docs.weizhiqingtu.com)。 - 内容真源即本目录
*.md:改 md = 改文档站(构建期apps/docs/src/content.ts读取分组渲染)。 - 与「平台级管理后台」的
app_api_docs(三栏 newapi.pro 编辑端,另一独立项目)互不影响——教师端是自建后端,文档以本目录 md 为准。
教师端本地接口文档(本端自建后端,直接维护在本目录)
教师端为自建 FastAPI(见
CLAUDE.md#6),以下条目随接口增删改同步更新(也即上面文档站apps/docs渲染的内容):
- 登录鉴权.md —
POST /api/teacher/{login,register,refresh}、GET /api/teacher/{schools,me,profile,students}(分类:登录鉴权) - 在线升级.md —
GET /api/version/check(分类:在线升级) - 接口日志查询.md —
GET /api/admin/logs、/logs/stats、/logs/{id}、/ai/runs、/ai/runs/{id}(分类:系统运维;仅管理员is_admin,由独立运维后台 apps/admin 消费)。登录/me现返回isAdmin。
与 FastAPI 自带 /docs 的关系
FastAPI /docs(OpenAPI)自动生成、互为补充,但不能顶替本要求(CLAUDE.md #3):本套文档含错误码、请求/响应示例、分组与发布状态,且与接口日志按 method+path 打通。