壁纸管理 API 文档
环境:
Python 3.9+、Flask 2.x、PyMySQL 1.x
运行:python app.py
监听:http://0.0.0.0:5000
通用响应格式
{"code": 200, // 业务码:200 成功,201 创建成功,400 参数错误,404 资源不存在,500 服务器错误"message": "success","data": {...}, // 具体数据"total": 10 // 部分列表接口返回
}
1. 健康检查
GET /health
测试服务是否存活。
响应示例
{"status":"ok","message":"API is running"}
2. 壁纸列表
GET /api/wallpapers
返回全部壁纸,按创建时间倒序。
响应示例
{"code": 200,"message": "success","data": [{"wallpaper_id": 1,"title": "星空","category_name": "宇宙","file_url": "https://example.com/full/1.jpg","preview_url": "https://example.com/preview/1.jpg","resolution": "3840x2160","file_size": 2048000,"uploader_name": "admin","status": "active","view_count": 1024,"download_count": 256,"like_count": 128,"create_time": "2025-07-25 14:30:00"}],"total": 1
}
3. 壁纸详情
GET /api/wallpapers/int:wallpaper_id
响应示例
{"code": 200,"message": "success","data": { ...单条壁纸对象... }
}
4. 新增壁纸
POST /api/wallpapers
Body(JSON)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | √ | 壁纸标题 |
| category_name | string | √ | 分类名称 |
| file_url | string | √ | 原图地址 |
| preview_url | string | √ | 预览图地址 |
| resolution | string | √ | 分辨率,如 1920x1080 |
| file_size | int | √ | 文件大小(字节) |
| uploader_name | string | × | 上传者 |
| status | string | × | 状态,默认 pending |
响应示例
{"code": 201,"message": "壁纸添加成功","data": { "wallpaper_id": 12 }
}
5. 修改壁纸
PUT /api/wallpapers/int:wallpaper_id
Body(JSON)
只需传要更新的字段,支持:title、category_name、file_url、preview_url、resolution、file_size、uploader_name、status。
响应示例
{ "code": 200, "message": "壁纸更新成功" }
6. 删除壁纸
DELETE /api/wallpapers/int:wallpaper_id
响应示例
{ "code": 200, "message": "壁纸删除成功" }
7. 分类列表
GET /api/categories
响应示例
{"code": 200,"message": "success","data": ["宇宙", "动漫", "风景"]
}
8. 根据分类获取壁纸
GET /api/wallpapers/category/<category_name>
响应示例
与「壁纸列表」格式相同,仅筛选对应分类。
9. 更新统计信息
PUT /api/wallpapers/int:wallpaper_id/stats
Body(JSON)
| 字段 | 类型 | 说明 |
|---|---|---|
| view_count | int | 本次浏览增量 |
| download_count | int | 本次下载增量 |
| like_count | int | 本次点赞增量 |
可单独或组合传递;值为增量而非绝对值。
响应示例
{ "code": 200, "message": "统计信息更新成功" }
状态码说明
| HTTP | 业务 code | 场景说明 |
|---|---|---|
| 200 | 200 | 成功 |
| 201 | 201 | 创建成功 |
| 400 | 400 | 参数缺失或格式错误 |
| 404 | 404 | 指定壁纸不存在 |
| 500 | 500 | 服务器内部异常 |
常见错误示例
{ "code": 400, "message": "title 是必填字段" }{ "code": 404, "message": "壁纸不存在" }
数据库表结构(参考)
CREATE TABLE wallpapers (wallpaper_id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255) NOT NULL,category_name VARCHAR(64),file_url VARCHAR(512),preview_url VARCHAR(512),resolution VARCHAR(32),file_size BIGINT,uploader_name VARCHAR(64),status ENUM('pending','active','banned') DEFAULT 'pending',view_count INT DEFAULT 0,download_count INT DEFAULT 0,like_count INT DEFAULT 0,create_time DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
可直接将以上 Markdown 保存为 API.md,放入项目根目录,即可作为接口文档使用。