《 起步级 - B站全模块 - 超还原设计 》# 实战分享!(内含接口文档、数据库设计)

发布于:2024-12-19 ⋅ 阅读:(12) ⋅ 点赞:(0)

在这里下载文档 ↓
在这里插入图片描述

  • 数据库25张表细致考虑保证满足你的起步需要!点我获取设计图
  • 文档对应枚举码 result 结果集包 点我去复制


    博主很努力很认真的写出来了!真心希望能帮到你!如果帮到你的话, 希望能点个关注!如果不想的话那那那点赞或收藏也行鸭 ~(。•̀ᴗ-)✧

title: bilibili
language_tabs:

  • shell: Shell
  • http: HTTP
  • javascript: JavaScript
  • ruby: Ruby
  • python: Python
  • php: PHP
  • java: Java
  • go: Go
    toc_footers: []
    includes: []
    search: true
    code_clipboard: true
    highlight_theme: darkula
    headingLevel: 2
    generator: “@tarslib/widdershins v4.0.23”

                                                           bilibili


.

用户/用户帐号

POST 用户登录

POST /user-accounts/login

用户登录时, 成功则拦截下发JWT令牌, 失败则退回页面

Body 请求参数

{
  "account": "zs123123",
  "pwd": "123456"
}

请求参数

名称 位置 类型 必选 说明
body body object none
» account body string none
» pwd body string none

返回示例

200-OK、500-INTERNAL_ERROR 、401-NOT_AUTH

{
  "code": 200,
  "msg": "登录成功",
  "data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOm51bGwsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTczMzIxMDE3OX0.2Fs3N-iT0dFue4zZcO1GL90cW5ZHNjkPPtQEeJJaIS8"
}
{
  "code": 500,
  "msg": "服务器出现错误!",
  "data": null
}
{
  "code": 401,
  "msg": "账号或密码不正确",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR 、401-NOT_AUTH Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data string true none none

GET 查询账号是否被占用

GET /user-accounts/{account}

根据账号检查是否被占用

请求参数

名称 位置 类型 必选 说明
account path string none

返回示例

200-OK、500-INTERNAL_ERROR、409-CONFLICT

{
  "code": 200,
  "msg": "账号可用",
  "data": true
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 409,
  "msg": "该账号已被占用",
  "data": false
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR、409-CONFLICT Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data boolean true none 被占用false 可用true 异常null

POST 用户注册

POST /user-accounts/register

用户注册

  • 注册成功后自动跳转登录, 返回token令牌
  • 后端应该做事务处理

Body 请求参数

{
  "account": "zs123123",
  "pwd": "123123"
}

请求参数

名称 位置 类型 必选 说明
body body object none
» account body string none
» pwd body string none

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "注册成功",
  "data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTczNDIyNTM2MH0.uR1D84PDU39RuP7a6XZWDDveg1qWXCEMSibEunvWLOY"
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data string true none jwt

PUT 更改密码

PUT /user-accounts/pwd-update

更改密码

根据用户编号更改用户账号密码

  • 后端应该做事务处理

Body 请求参数

{
  "uId": 1,
  "pwd": "123123"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 none
» pwd body string 要更改的密码 none

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "修改成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

PUT 账号注销

PUT /user-accounts/cancel

账号注销

根据用户id, 后端处理改变账号状态

  • 后端应该做事务处理

Body 请求参数

{
  "uId": 1
}

请求参数

名称 位置 类型 必选 中文名 说明
status query string 前端无需传递,该值由后端自动设置,表示账号是否正常。
body body object none
» uId body integer none

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "账号注销成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

用户/用户

GET 个人资料

GET /users/{u-id}

  • 以当前用户编号 {u-id}
  • 获取用户基本信息 {user}

请求参数

名称 位置 类型 必选 中文名 说明
u-id path integer 用户ID

返回示例

200-OK、500-INTERNAL_ERROR、401-NOT_AUTH

{
  "code": 200,
  "msg": "success",
  "data": {
    "uId": 123,
    "name": "张三",
    "picture": "http://xxx.jpg",
    "phone": "13812345678",
    "email": "zhangsan@example.com",
    "gender": 1,
    "remark": "这是一个简介",
    "fansNum": 100,
    "concernsNum": 50,
    "likeNum": 200,
    "collectNum": 100,
    "issueNum": 50,
    "commentNum": 100
  }
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR、401-NOT_AUTH Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data object true none none
»» uId integer true none none
»» name string true none none
»» picture string true none none
»» phone string true none none
»» email string true none none
»» gender integer true none none
»» remark string true none none
»» fansNum integer true none none
»» concernsNum integer true none none
»» likeNum integer true none none
»» collectNum integer true none none
»» issueNum integer true none none
»» commentNum integer true none none
»» acId integer true none none

GET 模糊匹配所有用户

GET /users/{name}

模糊查询

  • 根据姓名对用户进行模糊匹配
  • 返回所有账号状态 0(注销) 和 1(正常) 的用户

请求参数

名称 位置 类型 必选 中文名 说明
name path string none

返回示例

OK

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "uId": 123,
      "name": "张三",
      "picture": "http://xxx.jpg",
      "phone": "13812345678",
      "email": "zhangsan@example.com",
      "gender": 1,
      "remark": "你好我是张三",
      "fansNum": 100,
      "concernsNum": 50,
      "likeNum": 200,
      "collectNum": 100,
      "issueNum": 50,
      "commentNum": 100,
      "userAccount": {
        "acId": 1,
        "status": "1"
      }
    },
    "..."
  ]
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK OK Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» uId integer false none none
»» name string false none none
»» picture string false none none
»» phone string false none none
»» email string false none none
»» gender integer false none none
»» remark string false none none
»» fansNum integer false none none
»» concernsNum integer false none none
»» likeNum integer false none none
»» collectNum integer false none none
»» issueNum integer false none none
»» commentNum integer false none none
»» userAccount object false none none
»»» acId integer true none none
»»» status string true none none

PUT 更新用户资料

PUT /users

  • 当前用户 {uId}
  • 正在更改自己的信息 {user}

Body 请求参数

{
  "uId": 1,
  "name": "张三",
  "phone": "18967123781",
  "email": "zhangsan@qq.com",
  "gender": 0,
  "remark": "这个人很懒"
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» name body string none
» phone body string none
» email body string none
» gender body integer none
» remark body string none

返回示例

NOT_CONTENT

{
  "code": 204,
  "msg": "更新成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content NOT_CONTENT Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

POST 头像上传

POST /users/picture-upload

Body 请求参数

picture: file://C:\Users\贤\Pictures\86097313_p0.jpg

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» picture body string(binary) 用户头像

返回示例

201-CREATED、500-INTERNAL_ERROR、400-BAD_REQUEST、401-NOT_AUTH

{
  "code": 201,
  "msg": "上传成功",
  "data": "localhost:8080//xxx.jpg"
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 400,
  "msg": "上传文件过大",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR、400-BAD_REQUEST、401-NOT_AUTH Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data string true none none

用户/用户/用户关注

GET 获取关注列表

GET /users-concerns/{u-id}/concerns

  • 当前用户 {u-id}
  • 关注列表 {user_concern}

请求参数

名称 位置 类型 必选 中文名 说明
u-id path integer 我的编号

返回示例

200-OK、500-INTERNAL_ERROR

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "id": 1,
      "user": {
        "uId": 2,
        "name": "卓卓脑婆",
        "picture": "xxx.jpg",
        "remark": "无团队纯个人..."
      },
      "concernTime": "2021-12-23 06:10:22"
    }
  ]
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none 返回的是当前用户的关注对象
»» id integer false none none
»» user object false none none

DELETE 取消关注

DELETE /user-concerns/cancel/{id}

取消关注

  • 根据关注列表编号 {id} 进行删除
  • 后端应该做事务处理

请求参数

名称 位置 类型 必选 中文名 说明
id path integer 关注列表编号

返回示例

OK

{
  "code": 204,
  "msg": "已取消关注",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK OK Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

POST 关注某人

POST /user-concerns/concern

  • 获取当前用户 {uId}
  • 获取被关注的用户 {concernId}
  • 放入用户关注列表 {userConcern}
    后端应该做事务处理

Body 请求参数

{
  "uId": 1,
  "concernId": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer ID
» concernId body integer ID 被关注的人

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "关注成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

用户/用户收藏

GET 用户收藏夹列表

GET /user-collects/{u-id}/folders

后端

  1. 统计每个收藏夹的收藏总量
  2. 按格式返回当前用户的所有收藏夹

请求参数

名称 位置 类型 必选 中文名 说明
u-id path integer 当前用户编号

返回示例

200-OK、500-INTERNAL_ERROR

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "cfId": 1,
      "name": "收藏夹A",
      "collectCounts": 12
    }
  ]
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» cfId integer false none 类型编号
»» name string false none 收藏夹名字
»» collectCounts integer true none 收藏的总数

POST 收藏作品

POST /user-collects/collect

收藏某个作品, 并放进选择的收藏夹

前端

  • isChose : 是否选择收藏夹,false 则放入默认收藏夹

后端

  • 通过当前用户①{uId}、收藏的作品②{issId}、选择的收藏夹③{cf_id}进行收藏
  • 后端应该做事务处理

Body 请求参数

{
  "uId": 1,
  "issId": 1,
  "cfId": 1
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 当前用户
» issId body integer 作品编号 收藏的作品编号
» cfId body integer 收藏夹编号 放进那个收藏夹

返回示例

CREATED

{
  "code": 201,
  "msg": "收藏成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现错误",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 取消收藏

DELETE /user-collects/{iss-id}/cancel

取消收藏

用户对已收藏做取消收藏

  • 通过用户编号①(u_id) 和 收藏编号②(uc_id) 在用户收藏列表③(user_collect)中删除
  • 后端做事务处理

请求参数

名称 位置 类型 必选 中文名 说明
iss-id path string none

返回示例

{
  "code": 201,
  "msg": "删除成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content none Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 打开收藏夹

GET /user-collects/folders

  1. 打开用户{u_id}
  2. 点击的收藏夹{cf_id},
  3. 显示里面包含的收藏内容{user_collect}

前端

视频发布时间格式说明:

  • 当天内:显示为 “X 分钟前”“X 小时前”
  • 昨天:显示为 “昨天”
  • 今年内:显示为 “MM-dd”
  • 今年外:显示为 “yyyy-MM-dd”

Body 请求参数

{
  "uId": 1,
  "cfId": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 当前用户
» cfId body integer 收藏夹编号 点击的收藏夹

返回示例

200-OK、500-INTERNAL_ERROR

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "ucId": 1,
      "video": {
        "id": 2,
        "cover": "https://xxx.jpg",
        "title": "一键三连变成女孩子是坠可爱的",
        "creTime": "2020-10-20 12:06:12",
        "collectNum": 999999,
        "watchNum": 100000000000,
        "author": {
          "id": 3,
          "name": "略nb"
        },
        "duration": 122
      },
      "creTime": "2020年10月20日 12:06:12"
    }
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR Inline
500 Internal Server Error none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» ucId integer false none 收藏编号 none
»» video object false none 视频对象 none
»»» id integer true none 视频编号 none
»»» cover string true none 封面 none
»»» title string true none 标题 none
»»» creTime string true none 发布时间 none
»»» collectNum integer true none 收藏量 none
»»» watchNum integer true none 观看量 none
»»» author object true none 作者对象 none
»»»» id integer true none 作者编号 none
»»»» name string true none 作者昵称 none
»»» duration integer true none 视频时长 none
»» creTime string false none 收藏时间 none

状态码 500

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

PUT 更新收藏夹

PUT /user-collects/folders

对收藏夹信息进行更改

Body 请求参数

{
  "uId": 1,
  "cover": "xxx02.jpg",
  "name": "精选收藏夹02",
  "creTime": "2020-12-03",
  "remark": ""
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "更新成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 删除收藏夹

DELETE /user-collects/folders

  • 删除收藏夹 (collect-folder)
  • 同时批量删除包含的收藏 (collect) (类似于部门解散)
  • 后端应该做事务管理

Body 请求参数

{
  "uId": 1,
  "cfId": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 获取当前操作的用户
» cfId body integer 收藏夹编号 传递操作的收藏夹

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "删除成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

POST 创建收藏夹

POST /user-collects/folders/create-1

两种方式创建收藏夹

第一种方式 : “直接在收藏页面中创建收藏夹”

  • 获取当前的用户编号

Body 请求参数

"{\r\n    \"collectFolder\":{\r\n        \"cover\":\"xxx.jpg\",\r\n        \"name\":\"精选收藏夹\",\r\n        // \"creTime\":\"2020-12-02\",\r\n        \"remark\":\"在这里输入描述\",\r\n        \"uId\":1\r\n    }\r\n}"

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» collectFolder body object none
»» cover body string none
»» name body string none
»» remark body string none
»» uId body integer none

返回示例

CREATED

返回结果

状态码 状态码含义 说明 数据模型
201 Created CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

POST 创建收藏夹2

POST /user-collects/folders/create-2

两种方式创建收藏夹

第二种方式 : “收藏作品的同时创建收藏夹”

  1. 先创建收藏夹, 主键回显
  2. 将作品放入该收藏夹

Body 请求参数

"{\r\n    \"collectFolders\":{\r\n        //\"cfId\" 等待回显\r\n        \"uId\":1,\r\n        \"cover\":\"xxx.jpg\",\r\n        \"name\":\"精选收藏夹\",\r\n        \"creTime\":\"2020-12-02\",\r\n        \"remark\":\"在这里输入描述\"\r\n    },\r\n    \"userCollect\":{\r\n        \"uId\": 1,\r\n        \"issId\": 1,\r\n        \"cfId\": -1 // 回显后替换\r\n    }\r\n}\r\n"

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» collectFolders body object 收藏夹 none
»» uId body integer none
»» cover body string none
»» name body string none
»» creTime body string none
»» remark body string none
» userCollect body object 用户收藏列表 none
»» uId body integer none
»» issId body integer none
»» cfId body integer none

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "创建并收藏成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

评论

POST 发送评论

POST /comments/send

  • 当前用户 {u_id}
  • 在某个作品 {iss_id}
  • 创建评论 CREATE > comment

Body 请求参数

{
  "comment": {
    "content": "大佬好厉害",
    "isSubcomment": false,
    "uId": 1,
    "issId": 2
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» comment body object 评论对象 none
»» content body string 内容 none
»» isSubcomment body boolean 是否为字评论 none
»» uId body integer 发评论的人 none
»» issId body integer 评论的作品 none

返回示例

201-CREATED

{
  "code": 201,
  "msg": "success",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 评论撤回

DELETE /comment

  • 当前用户{uId}
  • 对自己的评论 {cmId}
  • 进行撤回操作 Delete > comment

Body 请求参数

{
  "uId": 0,
  "cmId": 0
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 当前用户编号
» cmId body integer 评论编号 要撤回的评论编号

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "撤回成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none
» anonymous string false none none

POST 评论点赞

POST /comments/comment-likes

后端

步骤

  • 当前用户 {uId}

  • 对某个评论 {cmId}

  • 进行点赞:
    UPDATE > comment > like_num
    CREATE > comment_like

  • 权重计算公式 : score = like_num / (time_now - create_time + 1) ^ 0.5

  • sql语句:
    SET score = like_num / POW(TIMESTAMPDIFF(SECOND, create_time, NOW()) + 1, 0.5);

请求参数

名称 位置 类型 必选 中文名 说明
uId query integer 当前用户
cmId query integer 点赞的评论

返回示例

201-CREATED

{
  "code": 201,
  "msg": "点赞成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 我的评论点赞列表

GET /comments/{u-id}/comment-likes

后端

  1. 时间应为当前DTO对象最新的点赞时间

前端

  1. 若点赞用户 >= 两个, 显示两个用户
  2. 若点赞时间在1分钟内, 显示为 ‘刚刚’
  3. 评论时间若在当天内则由分、小时顺序显示, 当天外则用 ‘yyyy-MM-dd’ 格式, 今年内的评论 格式为MM-dd, 昨天的评论显示 昨天

请求参数

名称 位置 类型 必选 中文名 说明
u-id path string none

返回示例

OK-200

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "creTime": "2024年8月12日 11:49",
      "users": [
        {
          "uId": 1,
          "picture": "xx.jpg",
          "name": "无聊"
        },
        {
          "uId": 2,
          "picture": "xx.jpg",
          "name": "冉冉猫"
        }
      ],
      "comment": {
        "cmId": 1,
        "content": "好可爱",
        "likeNum": 12
      }
    }
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK OK-200 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» creTime string false none 最近的点赞时间 none
»» users [object] false none 点赞的前两个用户 none
»»» uId integer true none none
»»» name string true none none
»» comment object false none 我的评论 none
»»» cmId integer true none none
»»» content string true none none
»»» likeNum integer true none 点赞总数 none

GET 作品热门评论

GET /comments/{iss-id}/hot

通过视频编号获取属于该视频的所有评论

后端

  • 额外过滤条件状态为1
  • 若子评论数量 >=2 则显示两个子评论
  • 若 2< 子评论数量, 则显示一个或零个
  • 根据算力分 (score) 进行倒序排序

前端

  • 根据是否为子评论给予不同样式
  • 评论时间若在当天内则由分、小时顺序显示, 当天外则用 ‘yyyy-MM-dd’ 格式, 今年内的评论 格式为MM-dd, 昨天的评论显示 昨天

请求参数

名称 位置 类型 必选 中文名 说明
iss-id path integer 作品编号

返回示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "cmId": 1,
      "content": "阿米诺斯",
      "creTime": "2020年9月11日",
      "status": 1,
      "likeNum": 1200,
      "replyNum": 29,
      "isSubcomment": false,
      "replies": [
        {
          "user": {
            "uId": 3,
            "picture": "https://丁真之笑.jpg",
            "name": "钉珍"
          },
          "cmId": 2,
          "content": "你怎么能说藏话"
        },
        {
          "user": {
            "uId": 3,
            "picture": "https://丁之笑.jpg",
            "name": "钉珍"
          },
          "cmId": 3,
          "content": "藏话怎么能说你"
        }
      ],
      "user": {
        "uId": 3,
        "picture": "https://丁之笑.jpg",
        "name": "钉珍"
      }
    },
    "..."
  ]
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» cmId integer false none none
»» content string false none none
»» creTime string false none none
»» status integer false none 状态{ 0-撤回; 1-正常; 2-违规; 3-待审核 }
»» likeNum integer false none 点赞数
»» replyNum integer false none 回复数
»» isSubcomment boolean false none 是否为子评论
»» replies [object] false none 回复的评论 回复
»»» user object true none 子评论的用户信息 回复的用户信息
»»»» uId integer true none none
»»»» picture string true none none
»»»» name string true none none
»»» cmId integer true none 评论编号
»»» content string true none 子评论内容 内容
»» user object false none 父评论的用户信息 父评论用户信息
»»» uId integer true none none
»»» picture string true none none
»»» name string true none none

DELETE 取消点赞评论

DELETE /comments/comment-likes/cancel

对评论取消点赞

后端

  • 对该评论点赞数量更新 UPDATE > comment

  • 并且进行算力分计算 sql语句:
    SET score = (likes - 1) / POW(TIMESTAMPDIFF(SECOND, create_time, NOW()) + 1, 0.5);

  • 再通过 评论编号{cmId}

  • 我{uId}做为条件到点赞列表进行删除操作

Body 请求参数

{
  "uId": 1,
  "cmId": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 当前用户编号 none
» cmId body integer 评论编号 取消对评论的点赞

返回示例

204-NOT_CONTENT

{
  "code": 204,
  "msg": "已取消点赞",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 作品最新评论

GET /comments/{iss-id}/new

通过视频编号获取属于该视频的所有评论

后端

  • 额外过滤条件状态为1

  • 若子评论数量 >=2 则显示两个子评论

  • 若 2< 子评论数量, 则显示一个或零个

  • 根据评论创建时间 进行倒序排序

前端

  • 根据是否为子评论给予不同样式

  • 评论时间若为当天由分、小时优先级显示, 当天范围外则用 ‘yyyy年MM月dd日’ 格式

请求参数

名称 位置 类型 必选 中文名 说明
iss-id path string none

返回示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "cmId": 1,
      "content": "阿米诺斯",
      "creTime": "2020年9月11日",
      "status": 1,
      "likeNum": 1200,
      "replyNum": 29,
      "isSubcomment": false,
      "replies": [
        {
          "user": {
            "uId": 3,
            "picture": "https://丁真之笑.jpg",
            "name": "钉珍"
          },
          "cmId": 2,
          "content": "你怎么能说藏话"
        },
        {
          "user": {
            "uId": 3,
            "picture": "https://丁之笑.jpg",
            "name": "钉珍"
          },
          "cmId": 3,
          "content": "藏话怎么能说你"
        }
      ],
      "user": {
        "uId": 3,
        "picture": "https://丁之笑.jpg",
        "name": "钉珍"
      }
    },
    "..."
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» cmId integer false none none
»» content string false none none
»» creTime string false none none
»» status integer false none none
»» likeNum integer false none none
»» replyNum integer false none none
»» isSubcomment boolean false none none
»» replies [object] false none none
»»» user object true none none
»»»» uId integer true none none
»»»» picture string true none none
»»»» name string true none none
»»» cmId integer true none none
»»» content string true none none
»» user object false none none
»»» uId integer true none none
»»» picture string true none none
»»» name string true none none

评论/评论回复

GET 用户回复列表

GET /comments/comment-replies/{u-id}/user

我的回复列表 select id, name ,content

请求参数

名称 位置 类型 必选 中文名 说明
u-id path string 当前用户的编号

返回示例

OK-200

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "id": 1,
      "comment": {
        "cmId": 1,
        "content": "你说的对, 但",
        "status": "1"
      },
      "replay": {
        "cmId": 2,
        "content": "但什么",
        "creTime": "2020-10-01 10:00:00",
        "likeNum": 12,
        "user": {
          "uId": 3,
          "picture": "https://xxx.jpg",
          "name": "唉五花肉"
        }
      }
    },
    "..."
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK OK-200 Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none 回复列表, 根据回复时间排序
»» id integer false none 列表编号
»» comment object false none 当前用户的评论对象
»»» cmId integer true none 评论编号
»»» content string true none 评论内容
»»» status string true none 状态
»» replay object false none 当前用户评论的回复对象
»»» cmId integer true none 回复编号
»»» content string true none 回复内容
»»» creTime string true none 回复时间
»»» likeNum integer true none 点赞量
»»» user object true none 回复的用户的信息
»»»» uId integer true none 用户编号
»»»» pircture string true none 用户头像
»»»» name string true none 用户昵称

POST 回复评论

POST /comments/comment-replies

后端 (两次添加)

  1. 根据楼主评论{cm_id} 找 评论的作品编号{iss_id}
  2. 创建回复 {comment/reply} 记录, 主键回显, 并且开启子评论列{is_subcomment}
  3. 将回显的主键和 楼主评论 {cmId} 一并插入到评论回复列表 {comment_reply} 中

Body 请求参数

{
  "cmId": 1,
  "reply": {
    "uId": 1,
    "content": "那我问你"
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» cmId body integer 评论编号 none
» reply body object 回复 none
»» uId body integer 我的编号 none
»» content body string 回复内容 none

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "回复成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

弹幕

POST 发送弹幕

POST /danmus/send

后端

  1. 对弹幕信息表(danmu)发起创建请求, 主键回显(dm_id)
  2. 根据视频编号(iss_id)和回显的主键(dm_id) 对视频弹幕列表资源 发起创建请求

Body 请求参数

{
  "danmu": {
    "time": 12,
    "content": "我只是个怪物怪物你们知道什么是怪物吗",
    "color": "#ffffff",
    "dtId": 1,
    "uId": 1
  },
  "isd_id": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» danmu body object 弹幕 弹幕信息
»» time body integer 时间戳 none
»» content body string 弹幕内容 none
»» color body string 颜色 none
»» dtId body integer 弹幕类型 详情参考数据库
»» status body integer 状态 status
»» likeNum body integer 点赞人数 none
»» uId body integer none
» isd_id body integer 视频编号 视频编号

返回示例

201-CREATED

{
  "code": 201,
  "msg": "弹幕发送成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 弹幕撤回

DELETE /danmus/cancel

后端 - 两次删除 (硬删除)

  1. 通过弹幕编号 对视频弹幕列表(danmu_to_video)资源做删除操作
  2. 通过弹幕编号 对弹幕资源(danmu)做删除操作
  3. 按该顺序进行删除

Body 请求参数

{
  "dmId": 1,
  "isdId": 2
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» dmId body integer 弹幕编号 弹幕编号
» isdId body integer 视频编号 视频编号

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "弹幕删除成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 我的视角 - 视频弹幕列表

GET /danmus/{isd-id}/danmus-to-video

根据视频编号查询视频弹幕列表

后端

  • 使用 状态(status)为1作为过滤条件, 代表只查询正常的审核

Body 请求参数

{
  "uId": 1,
  "shields": [
    1001,
    1002,
    1003
  ]
}

请求参数

名称 位置 类型 必选 中文名 说明
isd-id path integer 视频编号
body body object none
» uId body integer 当前用户 用于过滤出当前用户的屏蔽列表
» shields body [integer] 屏蔽的弹幕数组 none

返回示例

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "time": 12,
      "content": "这是一个弹幕",
      "color": "#ffffff",
      "dtId": 1,
      "status": 0,
      "likeNum": 120,
      "uId": 1001
    },
    "..."
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» time integer false none none
»» content string false none none
»» color string false none none
»» dtId integer false none none
»» status integer false none none
»» likeNum integer false none none
»» uId integer false none none

POST 弹幕点赞

POST /danmus/danmu_likes/add

当前用户对某个弹幕进行点赞

后端

  1. 更新弹幕资源(danmu)的点赞量, set like_num = like_num + 1
  2. 创建新的视频弹幕列表资源(danmu_like)
  3. 后端对弹幕资源进行属性补充, 例点赞时间(cre_time)

Body 请求参数

{
  "uId": 1,
  "dmId": 3
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» uId body integer 用户编号 当前点赞的用户
» dmId body integer 弹幕编号 被点赞的弹幕

返回示例

201-CREATED

{
  "code": 201,
  "msg": "点赞成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 取消点赞弹幕

DELETE /danmus/danmu_likes/cancel

当前用户{uId}对已经点赞的弹幕{dmId}取消点赞 -> danmu_like

后端

  • 通过 用户编号弹幕编号 对弹幕点赞列表资源(danmu_like)进行硬删除
  • 通过弹幕编号对弹幕资源(danmu)进行硬删除

返回示例

{
  "code": 204,
  "msg": "已取消点赞",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 弹幕点赞列表

GET /danmus/{u-id}danmu_likes

当前用户的评论点赞列表

后端

  1. 应该根据格式封装返回一个DTO对象
  2. 时间应为当前DTO 对象最新的点赞时间

前端

  1. 若点赞用户大于等于两个, 显示两个头像和昵称
  2. 若最新点赞时间在1分钟内, 显示为 ‘刚刚’
  3. 弹幕时间若在当天内则由分、小时顺序显示, 当天外则用 ‘yyyy-MM-dd’ 格式, 今年内的弹幕 格式为MM-dd, 昨天的弹幕显示 昨天

请求参数

名称 位置 类型 必选 中文名 说明
u-id path integer 用户编号

返回示例

200-OK、500-INTERNAL_ERROR

{
  "code": 200,
  "msg": "success",
  "data": [
    {
      "creTime": "2024年8月12日 11:49",
      "users": [
        {
          "uId": 1,
          "picture": "xx.jpg",
          "name": "无聊"
        },
        {
          "uId": 2,
          "picture": "xx.jpg",
          "name": "冉冉猫"
        }
      ],
      "danmu": {
        "dmId": 1,
        "content": "好可爱",
        "likeNum": 12
      }
    }
  ]
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [object] true none none
»» creTime string false none none
»» users [object] false none none
»»» uId integer true none none
»»» picture string true none none
»»» name string true none none
»» danmu object false none none
»»» dmId integer true none none
»»» content string true none none
»»» likeNum integer true none none

POST 弹幕屏蔽

POST /danmus/danmu-shields/shield

当前用户的弹幕屏蔽列表

两种屏蔽方式

  1. 屏蔽单条弹幕
  2. 屏蔽该弹幕的发送者的所有发送弹幕

后端

  1. 如果屏蔽的是单条弹幕, 则直接在弹幕屏蔽列表资源(danmu_sheild)做创建操作
  2. 如果屏蔽的是一个用户, 则先获取该用户的编号去查询返回其所发送的所有弹幕编号, 再将这些编号在屏蔽列表资源(danmu_sheild)中做创建操作
  3. 弹幕编号应该采用数组, 进行装载

Body 请求参数

{
  "shield-user": 1,
  "uId": 2,
  "dmId": 3
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» shield-user body integer 屏蔽的用户 屏蔽的是某个用户的所有弹幕
» uId body integer 当前用户编号 谁屏蔽的
» dmId body integer 弹幕编号 屏蔽的弹幕

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "已成功屏蔽",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 查询屏蔽列表

GET /danmus/danmu-shields/list

查询当前用户的屏蔽列表中当前视频屏蔽的弹幕

后端

  • 通过用户编号(u_id) 在弹幕屏蔽列表资源(danmu_shield)中 查询其屏蔽的所有弹幕
  • 另外通过视频编号(iss_id) 配合视频弹幕列表 (danmu_to_video), 减小扫描范围
  • 应对 弹幕屏蔽列表资源(danmu_shield)中的弹幕(dm_id) 和视频弹幕列表中的包含弹幕(dm_id)进行连接

请求参数

名称 位置 类型 必选 中文名 说明
u-id query integer 用户的编号
iss-id query integer 弹幕所在视频

返回示例

200-OK、500-INTERNAL_ERROR

{
  "code": 200,
  "msg": "success",
  "data": [
    1,
    2,
    3,
    4,
    5
  ]
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK 200-OK、500-INTERNAL_ERROR Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data [integer] true none 屏蔽的弹幕

发布

GET 所有已投稿视频

GET /issues/issue-videos/list

当前用户 {u_id} 查看所投稿的所有视频 {issue_video}

请求参数

名称 位置 类型 必选 中文名 说明
uId query integer 当前用户

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

发布/视频

POST 视频投稿

POST /issues/issue-videos/publish

后端 (两次添加)

  1. 先补充基础信息 (issue), 主键回显
  2. 再填充视频信息 (issue_video), 关联回显

Body 请求参数

"{\r\n    \"issue\":{\r\n        \"issId\":1,// 等待回显\r\n        \"cover\":\"xxx.jpg\",\r\n        \"title\":\"视频标题\",\r\n        \"baseType\": \"转载\",\r\n        \"authorId\":1\r\n        // \"itId\":1 后端维护\r\n    },\r\n    \"issueVideo\":{\r\n        \"videoUrl\":\"xxx.mp4\",\r\n        \"duration\":60,\r\n        \"remark\":\"三连球球\",\r\n        \"permission\":\"所有人可见\",\r\n        \"isDeclare\":true,\r\n        \"vdId\":2,\r\n        \"offDanmu\":false,\r\n        \"offComm\":false,\r\n        \"onGretestComm\":true,\r\n        \"issId\":-1 //回显后替换\r\n    }\r\n}"

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» issue body object 发布对象 作品基本信息
»» cover body string 封面 none
»» title body string 标题 none
»» baseType body string 视频类型 转载、自制
» issueVideo body object 发布的视频对象 none
»» videoUrl body string 视频地址 none
»» duration body integer 时长 none
»» remark body string 备注 none
»» permission body string 可见范围 所有人可见、仅自己可见
»» isDeclare body boolean 是否为自制 未经作者允许, 禁止转载
»» vdId body integer 外键 创作者声明 (详见数据库表说明)
»» offDanmu body boolean 关闭弹幕 none
»» offComm body boolean 关闭评论区 none
»» onGretestComm body boolean 开启精选评论 none
»» issId body integer 发布编号 外键, 绑定基本发布信息

返回示例

201-CREATED、500-INTERNAL_ERROR

{
  "code": 201,
  "msg": "已成功发布, 目前正在审核..",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

POST 视频上传

POST /issues/issue-videos/upload

对某个视频进行上传, 返回该视频的URL地址

Body 请求参数

video: ""

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» video body string(binary) up主上传的视频文件

返回示例

201-CREATED、500-INTERNAL_ERROR、400-BAD_REQUEST、401-NOT_AUTH

{
  "code": 201,
  "msg": "上传成功",
  "data": "https://aliyunoss/bucket/01.jpg"
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}
{
  "code": 400,
  "msg": "上传文件过大",
  "data": null
}
{
  "code": 401,
  "msg": "NOT_LOGIN",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、500-INTERNAL_ERROR、400-BAD_REQUEST、401-NOT_AUTH Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data string true none none

PUT 视频更改

PUT /issues/issue-videos/update

注意:

  • 仅能修改信息, 不能修改视频本身 (包括时长、画面…)
  • 可以修改已上传但未发布的视频文件
  • 发布后再次审核

Body 请求参数

{
  "issueVideo": {
    "isdId": 1,
    "remark": "关注我关注我关注我关注我....",
    "permission": "公开可见",
    "isDeclare": true,
    "vdId": 4,
    "offDanmu": true,
    "offComm": true,
    "onGretestComm": false,
    "issue": {
      "issId": 5,
      "cover": "https://aliyunoss/01.jpg",
      "baseType": 2,
      "uId": 3
    }
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» issueVideo body object 视频对象 none
»» isdId body integer 视频编号 none
»» remark body string 视频介绍 none
»» permission body string 允许范围 例: 仅自己可见、所有人可见
»» isDeclare body boolean 自制声明 未经作者允许禁止转载
»» vdId body integer 声明类型 例: 该视频由AI生成…
»» offDanmu body boolean 关闭弹幕 none
»» offComm body boolean 关闭评论 none
»» onGretestComm body boolean 开启精选评论 none
»» issue body object 基本信息关联 none
»»» issId body integer 编号 none
»»» cover body string 封面 none
»»» baseType body integer 基本类型 none
»»» uId body integer 发布者编号 none

返回示例

{
  "code": 204,
  "msg": "更改成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 删除已投稿视频

DELETE /issues/issue-videos/cancel

后端 (两次删除)

  1. 视频 {issue_video} > (SD) DELETE by {isdId}
  2. 基本信息 {issue} > (SD) DELETE by {issId}
  3. 做事务处理

Body 请求参数

{
  "isdId": 1,
  "issId": 1
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» isdId body integer 视频编号 none
» issId body integer 基本信息编号 none

返回示例

{
  "code": 204,
  "msg": "该视频删除成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content none Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 视频评论管理

GET /issues/issue-videos/{iss-id}/comments

当前投稿 {iss_id} [by]
下的评论 {comment}

请求参数

名称 位置 类型 必选 中文名 说明
iss-id path integer 当前查看的投稿

返回示例

200 Response

{}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

发布/视频/视频草稿

POST 视频保存为草稿

POST /issues/issue-videos/video-drafts/saved

我将发布信息保存为草稿

Body 请求参数

"{\r\n    \"issue\": {\r\n        // iss_id 等待回显\r\n        \"cover\":\"xxx.jpg\",\r\n        \"title\":\"特朗普特离谱?\",\r\n        \"baseType\":2,\r\n        \"authorId\":1,\r\n        \"itId\":1\r\n    },\r\n    \"videoDraft\": {\r\n        \"videoUrl\":\"xxx.mp4\",\r\n        \"duration\":78,\r\n        \"remark\":\"两只朗普爱跳舞也\",\r\n        \"permission\":\"所有人可见\",\r\n        \"isDeclare\":false,\r\n        \"vdId\":2,\r\n        \"offDanmu\":false,\r\n        \"offComm\":false,\r\n        \"onGretestcomm\":true,\r\n        \"issId\":-1 //回显后替换        \r\n    } \r\n}"

请求参数

名称 位置 类型 必选 中文名 说明
body body object none
» issue body object 初始信息 none
»» cover body string 封面地址 none
»» title body string 标题 none
»» baseType body integer 基本类型 自制、转载
»» authorId body integer 作者编号 none
»» itId body integer 发布类型 none
» issueVideo body object none
»» videoUrl body string none
»» duration body integer none
»» remark body string none
»» permission body string none
»» isDeclare body boolean none
»» vdId body integer none
»» offDanmu body boolean none
»» offComm body boolean none
»» onGretestcomm body boolean none
»» issId body integer 等待回显 none

返回示例

201-CREATED、

{
  "code": 201,
  "msg": "另存为草稿成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
201 Created 201-CREATED、 Inline

返回数据结构

状态码 201

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

PUT 草稿更新

PUT /issues/issue-videos/video-drafts/saving

前端

  • 更改信息分成两个对象
  1. 作品基本信息 (issue)
  2. 视频草稿信息 (videoDraft)

后端 (两次修改)

  1. 封装请求体DTO对象
  2. 对基本信息 UPDATE > issue
  3. 对草稿信息 UPDATE > video_draft

Body 请求参数

{
  "issue": {
    "issId": 1,
    "cover": "xxx02.jpg",
    "title": "特朗普特离谱2",
    "baseType": 2,
    "authorId": 1,
    "itId": 3
  },
  "videoDraft": {
    "vduId": 1,
    "videoUrl": "xxx.mp4",
    "duration": 68,
    "remark": "...",
    "permission": "所有人可见",
    "isDeclare": false,
    "vdId": 2,
    "offDanmu": false,
    "offComm": false,
    "onGretestcomm": true,
    "issId": 1
  }
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object none

返回示例

204-NOT_CONTENT

{
  "code": 204,
  "msg": "保存成功",
  "data": null
}
{
  "code": 500,
  "msg": "服务器出现异常",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

DELETE 草稿删除

DELETE /issues/issue-videos/video-drafts/cancel

前端 (两次删除)

  1. 对草稿 {video_draft} > DELETE by vdrId
  2. 对基本信息 {issue} > DELETE by issId

请求参数

名称 位置 类型 必选 中文名 说明
vdrId query integer 草稿编号
issId query integer 基本信息编号

返回示例

204-NOT_CONTENT、500-INTERNAL_ERROR

{
  "code": 204,
  "msg": "删除成功",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
204 No Content 204-NOT_CONTENT、500-INTERNAL_ERROR Inline

返回数据结构

状态码 204

名称 类型 必选 约束 中文名 说明
» code integer true none none
» msg string true none none
» data null true none none

GET 草稿列表

GET /issues/issue-videos/video-drafts/list

后端

  • 应当对另存时间做排序

请求参数

名称 位置 类型 必选 中文名 说明
uId query integer 当前用户

返回示例

{
  "code": 200,
  "message": "success",
  "data": [
    {
      "vdrId": 1,
      "// 草稿唯一标识符 \"title\"": "我的视频草稿1",
      "// 草稿标题 \"remark\"": "视频简介示例",
      "// 草稿描述 \"cover\"": "https://example.com/cover1.jpg",
      "// 草稿封面 URL \"creTime\"": "2024-06-18 10:00:00",
      "// 草稿另存时间 \"isPublish\"": false,
      "duration": 120,
      "// 视频时长,单位:秒 \"size\"": 52428800,
      "// 文件大小,单位:字节 \"itId\"": "1              // 草稿类型(如视频、文章)"
    }
  ]
}
{
  "code": 500,
  "message": "",
  "data": null
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» code integer true none none
» message string true none none
» data [object] true none none
»» vdrId integer false none 草稿唯一标识符 none
»» title string false none 草稿标题 none
»» remark string false none 草稿描述 none
»» cover string false none 草稿封面 URL none
»» creTime string false none 草稿另存时间 none
»» isPublish boolean false none none
»» duration integer false none 视频时长,单位:秒 none
»» size integer false none 文件大小,单位:字节 none
»» itId integer false none 草稿类型(如视频、文章) none

GET 打开草稿

GET /issues/issue-videos/video-drafts/open

打开点击的{vdrId} 草稿 SElECT > video_draft

请求参数

名称 位置 类型 必选 中文名 说明
vdrId query integer 草稿标识

返回示例

{
  "draft": {
    "issId": 1,
    "cover": "xxx.jpg",
    "title": "特朗普特离谱?",
    "baseType": 2,
    "authorId": 1,
    "itId": 1,
    "videoUrl": "xxx.mp4",
    "duration": 78,
    "remark": "两只朗普爱跳舞也",
    "permission": "所有人可见",
    "isDeclare": false,
    "vdId": 2,
    "offDanmu": false,
    "offComm": false,
    "onGretestcomm": true
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
» draft object true none none
»» issId integer true none 基本信息编号 none
»» cover string true none 封面 none
»» title string true none 标题 none
»» baseType integer true none 转载自制 none
»» authorId integer true none 作者编号 none
»» itId integer true none 发布类型 none
»» videoUrl string true none 视频地址 none
»» duration integer true none 时长 none
»» remark string true none 介绍 none
»» permission string true none 允许范围 none
»» isDeclare boolean true none 自制声明 none
»» vdId integer true none 视频编号 none
»» offDanmu boolean true none 关闭弹幕 none
»» offComm boolean true none 关闭评论 none
»» onGretestcomm boolean true none 开启精选评论 none

数据模型