476 lines
6.3 KiB
Markdown
476 lines
6.3 KiB
Markdown
|
|
# 作品管理模块接口文档
|
||
|
|
|
||
|
|
## 模块概述
|
||
|
|
作品管理模块提供作品的发布、编辑、删除、点赞、收藏等功能。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 接口列表
|
||
|
|
|
||
|
|
### 1. 发布作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/publish`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"title": "作品标题",
|
||
|
|
"description": "作品描述",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"videoUrl": "视频URL(视频作品)",
|
||
|
|
"imageUrls": ["图片URL1", "图片URL2"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**type说明**:
|
||
|
|
- IMAGE: 图片作品
|
||
|
|
- VIDEO: 视频作品
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": 作品ID
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 2. 获取作品详情
|
||
|
|
|
||
|
|
**接口路径**: `GET /api/front/works/detail/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token} (可选)
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"description": "作品描述",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"videoUrl": "视频URL",
|
||
|
|
"imageUrls": ["图片URL1", "图片URL2"],
|
||
|
|
"authorId": 作者ID,
|
||
|
|
"authorName": "作者昵称",
|
||
|
|
"authorAvatar": "作者头像",
|
||
|
|
"likeCount": 点赞数,
|
||
|
|
"collectCount": 收藏数,
|
||
|
|
"commentCount": 评论数,
|
||
|
|
"shareCount": 分享数,
|
||
|
|
"isLiked": false,
|
||
|
|
"isCollected": false,
|
||
|
|
"createTime": "创建时间"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3. 编辑作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/update`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"description": "作品描述"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**说明**: 仅作者可编辑
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 4. 删除作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/delete/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**说明**: 仅作者可删除,逻辑删除
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 5. 搜索作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/search`
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"keyword": "搜索关键词",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"page": 1,
|
||
|
|
"pageSize": 20
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"list": [
|
||
|
|
{
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"likeCount": 点赞数,
|
||
|
|
"authorName": "作者昵称"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"total": 总数,
|
||
|
|
"page": 当前页,
|
||
|
|
"pageSize": 每页数量
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 6. 获取用户作品列表
|
||
|
|
|
||
|
|
**接口路径**: `GET /api/front/works/user/{userId}`
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
userId: 用户ID (路径参数)
|
||
|
|
page: 页码 (默认1)
|
||
|
|
pageSize: 每页数量 (默认20)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"list": [
|
||
|
|
{
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"likeCount": 点赞数
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"total": 总数
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 7. 点赞作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/like/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 8. 取消点赞
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/unlike/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 9. 收藏作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/collect/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 10. 取消收藏
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/uncollect/{worksId}`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 11. 我的点赞列表
|
||
|
|
|
||
|
|
**接口路径**: `GET /api/front/works/my/liked`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
page: 页码 (默认1)
|
||
|
|
pageSize: 每页数量 (默认20)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"list": [
|
||
|
|
{
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"likeCount": 点赞数
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"total": 总数
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 12. 我的收藏列表
|
||
|
|
|
||
|
|
**接口路径**: `GET /api/front/works/my/collected`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
page: 页码 (默认1)
|
||
|
|
pageSize: 每页数量 (默认20)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"list": [
|
||
|
|
{
|
||
|
|
"id": 作品ID,
|
||
|
|
"title": "作品标题",
|
||
|
|
"coverUrl": "封面URL",
|
||
|
|
"type": "IMAGE",
|
||
|
|
"collectCount": 收藏数
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"total": 总数
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 13. 分享作品
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/works/share/{worksId}`
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
worksId: 作品ID (路径参数)
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": true
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**说明**: 增加分享次数统计
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 14. 视频上传
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/upload/work/video`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
Content-Type: multipart/form-data
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
multipart: 视频文件
|
||
|
|
model: "works"
|
||
|
|
pid: 0
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"url": "视频URL",
|
||
|
|
"name": "文件名",
|
||
|
|
"size": 文件大小
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 15. 图片上传
|
||
|
|
|
||
|
|
**接口路径**: `POST /api/front/upload/image`
|
||
|
|
|
||
|
|
**请求头**:
|
||
|
|
```
|
||
|
|
Authorization: Bearer {token}
|
||
|
|
Content-Type: multipart/form-data
|
||
|
|
```
|
||
|
|
|
||
|
|
**请求参数**:
|
||
|
|
```
|
||
|
|
multipart: 图片文件
|
||
|
|
model: "works"
|
||
|
|
pid: 0
|
||
|
|
```
|
||
|
|
|
||
|
|
**返回参数**:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"code": 200,
|
||
|
|
"msg": "success",
|
||
|
|
"data": {
|
||
|
|
"url": "图片URL",
|
||
|
|
"name": "文件名",
|
||
|
|
"size": 文件大小
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|