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

devtools/2024/12/25 0:49:40/

↑ 上方下载文档 (大小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/devtools/145124.html

相关文章

黑客术语3

19、免杀 : 就是通过加壳、加密、修改特征码、加花指令等等技术来修改程序, 使其逃过杀毒软件的查杀。 20 、加壳 : 就是利用特殊的算法,将 EXE 可执行程序或者 DLL 动态连接库文件的 编码进行改变(比如实现压缩、加密)&a…

Jenkins 持续集成部署——Jenkins实战与运维(1)

一、Jenkins 相关配置及代码发布 1. Jenkins 发布 php 代码 1.1 安装插件 先进入“系统管理”,再进入“管理插件”,在“已安装”中检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有则需要安装,到“可选插件”中…

解释工厂模式

参考文献:C几种工厂模式和实现实例_工厂方法模式c实例-CSDN博客 什么是工厂模式 工厂模式是一种创建对象的设计模式,它提供了一种创建对象的方式,将对象的创建和使用分离 通过工厂模式,可以根据不同的条件创建不同类型的对象&a…

【模型压缩】原理及实例

在移动智能终端品类越发多样的时代,为了让模型可以顺利部署在算力和存储空间都受限的移动终端,对模型进行压缩尤为重要。模型压缩(model compression)可以降低神经网络参数量,减少延迟时间,从而实现提高神经…

Spring Boot框架结合MongoDB实现日志数据的保存和归档

使用Spring Boot框架结合MongoDB实现日志数据的保存和归档,可以考虑以下几个关键点: 关键点概述 1) 数据库设计: 数据模型:确定你的日志记录所需的字段,如时间戳、日志级别、消息内容、用户ID等。索引&…

【DOCKER】基于DOCKER的服务之DUFS

文件上传下载服务器:https://github.com/sigoden/dufs # 拉取镜像 docker pull sigoden/dufs# 创建数据卷文件夹 mkdir -p /data/.docker/volumes/dufs# 创建容器 docker run -id --restartalways --name dufs \-p 51080:5000 \-v /data/.docker/volumes/dufs:/dat…

【漏洞-Oracle】未设置口令复杂度校验、密码有效期

1.场景描述 三方漏洞扫描: 2.详细描述 安全问题:Oracle未设置系统的口令复杂度校验、密码有效期。 危害分析结果:存在使用口令被恶意用户猜测获得,合法用户身份被仿冒,导致系统被非授权访问的可能性。 整改建议&…

WPF 依赖属性和附加属性

除了普通的 CLR 属性, WPF 还有一套自己的属性系统。这个系统中的属性称为依赖属性。 1. 依赖属性 为啥叫依赖属性?不叫阿猫阿狗属性? 通常我们定义一个普通 CLR 属性,其实就是获取和设置一个私有字段的值。假设声明了 100 个 …