# 图像验证码API详情页 Spec ## Why 当前API接口大全(`/api`)中的"图片验证码"API尚未实现前端详情页。现有的 `ApiDetail.tsx` 是静态页面,仅支持硬编码的天气API和IP定位API,无法动态展示其他API的文档和测试功能。需要实现一个通用的API详情页,支持动态加载后端API目录中的任意API信息,包括图像验证码API。 ## What Changes ### 前端变更 - 重构 `ApiDetail.tsx` 为通用组件,通过API ID或路径动态加载API信息 - 新增API详情页路由 `/api-detail/:id`,支持从API列表页点击进入 - 实现API文档展示:接口描述、请求参数表、响应示例、错误码说明 - 实现在线测试功能:支持GET/POST请求,显示响应状态、耗时、响应体 - 添加收藏功能,已登录用户可收藏/取消收藏API - 添加使用次数统计展示 - 支持暗色模式样式 ### 路由变更 - 新增路由 `/api-detail/:id` → 通用API详情页 - API列表页(Tools.tsx)点击卡片时跳转到 `/api-detail/:id` ### 数据变更 - 复用现有 `apidirectory` 后端接口获取API详情 - 无需新增数据库表 ## Impact - Affected specs: `real-time-weather-api`, `ip-location-api`, `air-quality-api`(参考其模式) - Affected code: - `chunyu_project_react/src/pages/ApiDetail/ApiDetail.tsx`(重构为通用组件) - `chunyu_project_react/src/pages/ApiDetail/ApiDetail.css`(样式更新) - `chunyu_project_react/src/pages/Tools/Tools.tsx`(修改点击跳转逻辑) - `chunyu_project_react/src/App.tsx`(新增路由) - `chunyu_project_react/src/locales/*.json`(添加翻译键) ## ADDED Requirements ### Requirement: 通用API详情页 系统SHALL提供一个通用的API详情页,能够根据API ID动态加载并展示任意API的文档和测试功能。 #### Scenario: 从API列表进入详情页 - **WHEN** 用户在API列表页(`/api`)点击某个API卡片 - **THEN** 页面跳转到 `/api-detail/:id`,显示该API的详情信息 #### Scenario: 动态加载API信息 - **WHEN** 用户访问 `/api-detail/:id` - **THEN** 系统通过 `api_request.apidirectory.getItemDetail(id)` 获取API信息并展示 #### Scenario: API文档展示 - **WHEN** 用户切换到"文档"标签 - **THEN** 显示接口名称、请求方法、URL路径、接口描述、请求参数表、响应示例、错误码说明 #### Scenario: 在线测试功能 - **WHEN** 用户在"测试"标签中配置请求参数并点击发送 - **THEN** 系统向API发起真实请求,显示响应状态码、响应时间、响应体 #### Scenario: 收藏功能 - **WHEN** 已登录用户点击收藏按钮 - **THEN** 调用收藏API,按钮状态更新为"已收藏",收藏数+1 #### Scenario: 未登录用户点击收藏 - **WHEN** 未登录用户点击收藏按钮 - **THEN** 弹出登录弹窗 ## MODIFIED Requirements ### Requirement: API列表页跳转逻辑 API列表页的卡片点击SHALL跳转到通用详情页 `/api-detail/:id`。 #### Scenario: 卡片点击跳转 - **WHEN** 用户点击API列表中的某个API卡片 - **THEN** 页面跳转到 `/api-detail/:id`(id为该API的数据库ID) ### Requirement: 路由注册 App.tsx SHALL注册 `/api-detail/:id` 路由指向通用API详情页。 #### Scenario: 路由匹配 - **WHEN** 用户访问 `/api-detail/1` - **THEN** 显示ID为1的API详情页 ## REMOVED Requirements 无移除的功能。