74 lines
2.4 KiB
Markdown
74 lines
2.4 KiB
Markdown
# API接口大全数据库 Spec
|
||
|
||
## Why
|
||
当前"API接口大全"页面的数据是硬编码在组件中的静态数据,无法通过后台动态管理。需要创建数据库表和API接口来实现动态配置。
|
||
|
||
## What Changes
|
||
- 创建新的Django app `apidirectory`
|
||
- 创建数据库模型:ApiCategory(分类)、ApiItem(API接口)、ApiFavorite(收藏)
|
||
- 创建序列化器和API视图
|
||
- 修改前端Tools.tsx从API动态获取数据
|
||
|
||
## Impact
|
||
- Affected specs: API接口大全页面
|
||
- Affected code:
|
||
- 新增: `chunyu_project/apidirectory/` (整个新app)
|
||
- `chunyu_project/apidirectory/models.py`
|
||
- `chunyu_project/apidirectory/serializers.py`
|
||
- `chunyu_project/apidirectory/views.py`
|
||
- `chunyu_project/apidirectory/urls.py`
|
||
- `chunyu_project/chunyu_project/urls.py` (添加路由)
|
||
- `chunyu_project/chunyu_project/settings.py` (注册app)
|
||
- `chunyu_project_react/src/utils/request.ts` (添加API函数)
|
||
- `chunyu_project_react/src/pages/Tools/Tools.tsx` (改为动态加载)
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: API分类管理
|
||
系统SHALL提供API分类的增删改查功能。
|
||
|
||
#### Scenario: 获取分类列表
|
||
- **WHEN** 调用 GET /apidirectory/categories/
|
||
- **THEN** 返回所有分类及其关联的API数量
|
||
|
||
### Requirement: API接口管理
|
||
系统SHALL提供API接口的增删改查功能。
|
||
|
||
#### Scenario: 获取API列表
|
||
- **WHEN** 调用 GET /apidirectory/items/
|
||
- **THEN** 返回API列表,支持分类筛选、搜索、排序
|
||
|
||
#### Scenario: 获取API详情
|
||
- **WHEN** 调用 GET /apidirectory/items/{id}/
|
||
- **THEN** 返回单个API的详细信息
|
||
|
||
### Requirement: API收藏功能
|
||
系统SHALL支持用户收藏API接口。
|
||
|
||
#### Scenario: 收藏API
|
||
- **WHEN** 已登录用户 POST /apidirectory/items/{id}/favorite/
|
||
- **THEN** 切换收藏状态并返回结果
|
||
|
||
### Requirement: 前端动态加载
|
||
系统SHALL从后端API动态获取数据渲染页面。
|
||
|
||
#### Scenario: 页面加载
|
||
- **WHEN** 用户访问API接口大全页面
|
||
- **THEN** 显示加载状态,从API获取数据后渲染
|
||
|
||
## MODIFIED Requirements
|
||
|
||
### Requirement: Tools.tsx页面
|
||
现有的Tools.tsx页面SHALL从静态数据改为动态加载。
|
||
|
||
#### Scenario: 数据获取
|
||
- **WHEN** 页面加载
|
||
- **THEN** 调用API获取分类和工具数据
|
||
|
||
#### Scenario: 分类筛选
|
||
- **WHEN** 用户点击分类Tab
|
||
- **THEN** 根据分类ID过滤API列表
|
||
|
||
## REMOVED Requirements
|
||
无
|