# API Docs 与 Schema 使用说明 更新日期:2026-07-03 本文档说明 `/api/schema/` 和 `/api/docs/` 的用途、登录方式和前端审查使用流程。 ## 访问保护 当前 API 文档端点已启用 JWT 登录保护: - 未登录访问 `/api/schema/` 会返回 401。 - 未登录访问 `/api/docs/` 会返回 401。 - 只要是有效登录用户即可访问,不额外要求管理员权限。 ## 两个端点的区别 ### `/api/schema/` 机器可读的 OpenAPI schema。 用途: - 给 Apifox、Postman、Swagger Editor 导入。 - 给前端生成接口类型或客户端代码。 - 用于审查当前后端实际暴露的 API 路径、请求参数、响应结构和认证方式。 返回格式通常是 OpenAPI JSON。 ### `/api/docs/` 浏览器可读的 Swagger UI 页面。 用途: - 在浏览器里查看接口文档。 - 在页面中通过 Authorize 填入 JWT 后调试接口。 注意:Swagger UI 页面本身也需要登录保护。浏览器地址栏不能直接携带 `Authorization` header,因此最顺手的方式通常是先用工具拿到 token,再在 Swagger UI 的 Authorize 里填入 token。 ## 登录获取 JWT 登录接口: ```http POST /api/auth/login/ ``` 请求体: ```json { "username": "frontend-reviewer", "password": "your-password" } ``` 成功响应: ```json { "refresh": "refresh-token", "access": "access-token" } ``` 说明: - 登录用户必须绑定 `Employee`。 - 未绑定员工身份的用户会登录失败。 - 当前 access token 有效期由后端 `SIMPLE_JWT` 配置控制。 ## 访问 `/api/schema/` 请求: ```http GET /api/schema/ Authorization: Bearer {access-token} ``` curl 示例: ```bash curl -H "Authorization: Bearer ${ACCESS_TOKEN}" https://your-domain/api/schema/ ``` Apifox/Postman 使用方式: 1. 先调用 `/api/auth/login/` 获取 `access`。 2. 导入 OpenAPI URL:`https://your-domain/api/schema/`。 3. 给导入请求添加 Header: ```http Authorization: Bearer {access-token} ``` ## 访问 `/api/docs/` 浏览器直接访问: ```text https://your-domain/api/docs/ ``` 如果浏览器没有携带 JWT,会返回 401。 推荐审查流程: 1. 调用 `/api/auth/login/` 获取 `access`。 2. 打开 `/api/docs/`。 3. 点击 Swagger UI 页面右上角 `Authorize`。 4. 输入: ```text Bearer {access-token} ``` 5. 之后即可在 Swagger UI 中查看并调试接口。 ## 前端审查建议 - 如果目标是审查接口结构,优先使用 `/api/schema/` 导入 Apifox/Postman。 - 如果目标是临时浏览和手动调试,使用 `/api/docs/`。 - 不要把 `/api/schema/` 的内容提交到前端仓库作为长期静态副本;schema 会随着后端代码变化而变化。 - 审查前请确认使用的是目标环境的域名,因为 `content_type` 等 ID 在不同环境可能不同。 ## 当前抽检重点 本次配置变更后需要确认: - 匿名访问 `/api/schema/` 返回 401。 - 匿名访问 `/api/docs/` 返回 401。 - 登录后访问 `/api/schema/` 返回 200。 - 登录后访问 `/api/docs/` 返回 200。 - `/api/schema/` 中包含最新 mission API 变更,例如 `employee_type_ids`。 更新日期:2026-07-03