# 起步专用 - 哔哩哔哩全模块超还原设计!(内含接口文档、数据库设计)

ops/2024/12/23 17:21:52/

↑ 上方下载文档 (大小374KB)

接口文档预览 (超过50个接口)

在这里插入图片描述

一、数据库25张表er-关系清晰构图!(tip: 鼠标右键图片 > 放大图像)

在这里插入图片描述

二、难点/经验 详细说明

  1. 热门评论排序
  2. 评论点赞列表|DTO封装
  3. 经验分享|精华接口文档说明 组员都说喜欢
  4. 分档对应枚举码

如果这篇文章帮到你, 帮忙点个关注呗, 点赞或收藏也行鸭 ~ (。•ᴗ-)✧

在这里插入图片描述
^ '(இ﹏இ`。)



文档预览 (详见顶部资料)

用户/用户帐号

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"},"upDashboard": {"ccId": 1,"uId": 123,"allConcerns": 12000,"allVideos": 55}}]
}{"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}进行收藏
  • 后端应该做事务处理

计算算力分

  • sql语句 {iss_id} [by] :
    SET score = (1.2 * collect_num) / POW(TIMESTAMPDIFF(HOUR, create_time, NOW()) + 1, 1.0);

up主创作数据更新

  • UP主 {u-id} [by]
  • 创作数据中心 {up-dashboard}
  • 收藏量同步更新 > UPDATE {all_collects}

Body 请求参数

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

请求参数

名称 位置 类型 必选 中文名 说明
body body object 否 none
» uId body integer 是 用户 当前用户
» issue body object 是 作品 被收藏的作品
»» issId body integer 是 作品编号 none
»» uId body integer 是 up主 作品的作者, 用于同步数据中心
» cfId body integer 是 none

返回示例

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/cancel

取消收藏

用户对已收藏做取消收藏

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

计算算力分

  • sql语句 {iss_id} [by] :
    SET score = (1.2 * collect_num) / POW(TIMESTAMPDIFF(HOUR, create_time, NOW()) + 1, 1.0);

同步up主的创作数据

  • UP {u-id} [by]
  • 的创作数据中心 {up-dashboard}
  • 收藏量同步更新 > UPDATE {all_collects}

Body 请求参数

{"collect": {"ucId": 1,"uId": 1,"issue": {"issId": 1,"uId": 2}}
}

请求参数

名称 位置 类型 必选 中文名 说明
body body object 否 none
» collect body object 是 收藏对象 包含取消收藏所必要信息
»» ucId body integer 是 主键 none
»» uId body integer 是 收藏人 当前用户
»» issue body object 是 作品对象 当前用户收藏的作品对象
»»» issId body integer 是 作品主键 none
»»» uId body integer 是 up主 用于做同步创作数据的条件

返回示例

{"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} [by]
  2. 点击的收藏夹{cf_id}, [by]
  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


http://www.ppmy.cn/ops/144342.html

相关文章

从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——消费者如何进行消费

本章节主要从底层源码探索Spring Boot中RabbitMQ如何进行消费,至于RabbitMQ是如何使用如何生产消息,本章不做过多介绍,感兴趣的小伙伴可以参考:从源码层级深入探索 Spring AMQP 如何在 Spring Boot 中实现 RabbitMQ 集成——生产者…

探究大模型为何因数据增多而效果更佳及其优势

一、数据增多为何能提升大模型效果 数据是大模型的“粮食”,是其学习与成长的基石。数据量的增加对于大模型效果的提升,主要得益于以下几个方面的因素: 模型训练的充分性: 大模型通常拥有数百万甚至数十亿个参数,这些…

数位dp-acwing(数字游戏)

题目:数字游戏 1082. 数字游戏 - AcWing题库 分析: 前缀和思想: dp(m) - dp(n-1) 用树的角度分析。 比最高位小的, 左分支讨论,等于最高位的进入右分支,(同时进入右分支有条件,就是当前位最…

SMMU软件指南SMMU编程之命令队列

安全之安全(security)博客目录导读 SMMU通过内存中的循环命令队列进行控制。例如,当软件更改STE或翻译时,需要在SMMU中失效相关缓存。这可以通过向命令队列发出相应的失效命令来实现。有关命令类型的详细信息,请参见“命令”部分。 在SMMUv3…

游戏关卡分析:荒野大镖客2雪山终战

1、相关剧情 主角约翰一家在农场过着悠闲的日子,突然平静被打破, 女枪手来报信,在某小镇找到了迈卡的消息。 于是激发了约翰的满腔怒气,不顾妻子的反对,坚决要出战, 要彻底歼灭迈卡,为亚瑟…

MVVM、MVC、MVP 的区别

MVVM(Model-View-ViewModel)、MVC(Model-View-Controller)和MVP(Model-View-Presenter)是三种常见的软件架构模式,它们在客户端应用开发中被广泛使用。每种模式都有其特定的设计理念和应用场景&…

几个常见的Jmeter压测问题

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 根据在之前的压测过程碰到的问题,今天稍微总结总结,以后方便自己查找。 一、单台Mac进行压测时候,压测客户端Jmeter启动超过20…

【Elasticsearch03】企业级日志分析系统ELK之Elasticsearch访问与优化

Elasticsearch 访问 Shell 命令 查看 ES 集群状态 访问 ES #查看支持的指令 curl http://127.0.0.1:9200/_cat #查看es集群状态 集群存活少于半数,无法执行 curl http://127.0.0.1:9200/_cat/health url http://127.0.0.1:9200/_cat/health?v #查看集群分健康…