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

↑ 上方下载文档 (大小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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/941381.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Go学习】从一个出core实战问题看Go interface赋值过程

0x01 背景 版本中一个同学找我讨论一个服务出core的问题,最终他靠自己的探索解决了问题,给出了初步的直接原因结论,"Go 中 struct 赋值不是原子的”。间接原因的分析是准确的,直接原因,我有点怀疑。当时写了一些…

leetcode之hot100---54螺旋矩阵(C++)

思路一:模拟 模拟螺旋矩阵的路径,路径超出界限,顺时针旋转,使用一个数组记录当前数字是否被访问到,直到所有的数字全部被访问 class Solution {//一个静态的常量数组,用于标记螺旋矩阵的移动方向(行列变化…

新能源汽车锂离子电池各参数的时间序列关系

Hi,大家好,我是半亩花海。为了进一步开展新能源汽车锂离子电池的相关研究,本文主要汇总并介绍了电动汽车的锂离子电池的各项参数,通过 MATLAB 软件对 Oxford Dataset 的相关数据集进行数据处理与分析,进一步研究各项参…

FastStone 10.x 注册码

简介 FastStone Capture是一款经典好用的屏幕截图软件,在屏幕截图领域具有广泛的应用和众多优势。 软件基本信息 FastStone Capture体积小巧,占用内存少,这使得它在运行时不会给计算机系统带来过多的负担,即使在配置较低的电脑…

AI合成图片是什么意思?有什么用?

随着人工智能的发展,现在市面上出现了很多对企业帮助很大的AI工具,比如说AI合成图片、AI换模特、AI穿衣、AI图片设计等等,下面小编就以AI合成图片为例,为大家详细介绍下。 一、AI合成图片是什么意思? AI合成图片主要就是指利用人…

【示例】Vue AntV G6 base64自定义img 动画效果,自适应宽高屏

需求:拓扑图中需要用动画的线条连接node,在此之前将HTML页面改成了vue页面。需要使用到G6的registerEdge 自定义边,小车的图片需要转成base64格式(并翻转),可以通过base64转image查看原来的样子。 另外&am…

MySQL的分析查询语句

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

【递归,搜索与回溯算法 综合练习】深入理解暴搜决策树:递归,搜索与回溯算法综合小专题(二)

优美的排列 题目解析 算法原理 解法 :暴搜 决策树 红色剪枝:用于剪去该节点的值在对应分支中,已经被使用的情况,可以定义一个 check[ ] 紫色剪枝:perm[i] 不能够被 i 整除,i 不能够被 per…

观察者模式(sigslot in C++)

大家,我是东风,今天抽点时间整理一下我很久前关注的一个不错的库,可以支持我们在使用标准C的时候使用信号槽机制进行观察者模式设计,sigslot 官网: http://sigslot.sourceforge.net/ 本文较为详尽探讨了一种观察者模…

GitCode 光引计划投稿|智能制造一体化低代码平台 Skyeye云

随着智能制造行业的快速发展,企业对全面、高效的管理解决方案的需求日益迫切。然而,传统的开发模式往往依赖于特定的硬件平台,且开发过程繁琐、成本高。为了打破这一瓶颈,Skyeye云应运而生,它采用先进的低代码开发模式…

高校就业管理:系统设计与实现的全流程分析

3.1可行性分析 在项目进行开发之前,必须要有可行性分析报告,分别从技术角度,经济角度,操作角度上面进行分析,经过可行性分析是实现科学开发的必要步骤。 3.1.1技术可行性 从技术的角度出发,目前采用开发的技…

超级AI图像放大工具Upscayl:让你的照片细节更清晰,色彩更鲜艳!

前言 Hello大家好,我又来推荐非常好用的AI图片无损放大器,模糊图片秒变高清,Upscayl是一个免费开源的AI图像超分辨率工具。它使用AI模型来通过猜测细节的方式增强图像并提高其分辨率。该工具适用于Linux、macOS和Windows操作系统 安装环境 [名称]&…

1.gitlab 服务器搭建流程

前提条件: 一、服务器硬件水平 搭建gitlab服务器最低配置要求2核4G,低于这个配置的服务器运行效果很差。 gitlab官网:https://about.gitlab.com/ 下载地址:gitlab/gitlab-ce - Packages packages.gitlab.com 本机ubuntu 二、安装依赖 su…

Ai编程从零开始全栈开发一个后台管理系统之用户登录、权限控制、用户管理-前端部分(十二)

云风网 云风笔记 云风知识库 一、创建前端部分 1、vite初始化项目 npm create vitelatest admin-frontend – --template vue-ts 2、安装必要的依赖 npm install vue-router pinia axios element-plus element-plus/icons-vue安装完成后package.json如下: {&qu…

CVE-2024-34351 漏洞复现

CVE-2024-34351&#xff0c;由Next.js异步函数createRedirectRenderResult导致的SSRF。 影响版本&#xff1a;13.4.0< Next.js < 14.1.1 参考文章&#xff1a; Next.js Server-Side Request Forgery in Server Actions CVE-2024-34351 GitHub Advisory Database Gi…

怎么理解GKE Role-Based Access Control (RBAC) 和 Pod Security Policies (PSP)

怎么理解GKE Role-Based Access Control (RBAC) 和 Pod Security Policies (PSP) 理解 Google Kubernetes Engine (GKE) 中的角色基于访问控制&#xff08;RBAC&#xff09;和 Pod 安全策略&#xff08;PSP&#xff09;对于确保集群安全性至关重要。以下是对这两个概念的详细解…

什么是 DevOps 自动化?

DevOps 自动化是一种现代软件开发方法&#xff0c;它使用工具和流程来自动化任务并简化工作流程。它将开发人员、IT 运营和安全团队聚集在一起&#xff0c;帮助他们有效协作并交付可靠的软件。借助 DevOps 自动化&#xff0c;组织能够处理重复性任务、优化流程并更快地将应用程…

帝国CMS:如何去掉帝国CMS登录界面的认证码登录

如果在安装的时候&#xff0c;不小心选中了认证码选项&#xff0c;那么后面登录帝国后台都会要求输入认证码才能登录&#xff0c;如何去除这个设置呢&#xff0c;笔者以古诗词网 www.gushichi.com为例&#xff0c;为大家举例说明&#xff01; 去除步骤如下&#xff1a; 1.前往…

4.2V单节锂电池充电电路(TP4056)、USB与锂电池切换电路分享

一、充电原理图 1、连接说明 BAT_VCC和BAT_GND连接电池 VUSB和GND连接USB电源 2、芯片介绍 a、DW01 DW01芯片是一种电池管理保护芯片&#xff0c;主要用于锂离子电池的保护和管理。DW01芯片具有以下特点&#xff1a; 电池电压保护&#xff1a;DW01芯片可以监测和保护电池的…

ChatGPT生成接口文档实践案例(二)

不难发现&#xff0c;两个方案都出色地完成了接口文档的生成&#xff0c;但笔者更喜欢Response 2的表达&#xff0c;因为其描述更加全面。 还可以让ChatGPT生成符合OpenAPI 3.0规范的接口文档&#xff0c;以便于项目相关成员阅读&#xff0c;如图5-13所示。 为什么要生成OpenAP…