Files
vscode-workbench/.trae/specs/image-captcha-api/spec.md
T

82 lines
3.4 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详情页 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
无移除的功能。