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

67 lines
2.3 KiB
Markdown

# API详情页滑块验证码 Spec
## Why
当前API详情页(ApiDetail)直接展示接口调用信息和测试工具,缺乏访问控制。为防止恶意抓取和未授权访问接口测试功能,需要在页面访问时增加滑块验证码验证,验证通过后才展示完整内容。
## What Changes
- 在ApiDetail页面集成SliderCaptcha组件
- 验证通过前隐藏接口详情、参数说明、测试工具等敏感内容
- 验证通过后展示完整页面内容
- 支持重试次数限制和Token过期自动刷新
- 暗色模式适配
## Impact
- Affected specs: API接口大全详情页
- Affected code:
- `src/pages/ApiDetail/ApiDetail.tsx` - 集成滑块验证码
- `src/pages/ApiDetail/ApiDetail.css` - 添加验证遮罩样式
- `src/components/SliderCaptcha/SliderCaptcha.tsx` - 复用现有组件
## ADDED Requirements
### Requirement: API详情页滑块验证码
系统SHALL在用户访问API详情页时要求进行滑块验证码验证。
#### Scenario: 首次访问页面
- **WHEN** 用户打开API详情页
- **THEN** 显示滑块验证码遮罩,隐藏页面核心内容
- **AND** 用户完成滑块验证后展示完整内容
#### Scenario: 验证成功
- **WHEN** 用户成功完成滑块验证
- **THEN** 隐藏验证码遮罩,展示API详情内容
- **AND** 显示验证成功状态(绿色勾选图标)
#### Scenario: 验证失败
- **WHEN** 用户验证失败
- **AND** 显示失败状态,自动刷新验证码
- **AND** 允许用户重试(最多3次)
#### Scenario: 超过最大重试次数
- **WHEN** 用户连续失败超过最大重试次数
- **AND** 显示操作按钮让用户手动刷新
### Requirement: 内容保护
验证通过前SHALL隐藏接口敏感信息。
#### Scenario: 未验证状态
- **WHEN** 用户未完成滑块验证
- **THEN** 隐藏接口参数、响应示例、测试工具等内容
- **AND** 显示验证码组件
### Requirement: 暗色模式支持
滑块验证码组件SHALL支持暗色模式。
#### Scenario: 暗色模式
- **WHEN** 用户切换到暗色模式
- **AND** 验证码组件和遮罩适配暗色主题
## MODIFIED Requirements
### Requirement: ApiDetail页面
现有ApiDetail页面SHALL集成滑块验证码保护。
#### Scenario: 页面加载
- **WHEN** 页面加载
- **AND** 默认显示验证状态,验证通过后才渲染完整内容