# 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 无