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

↑ 上方下载文档 (大小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.rhkb.cn/news/494901.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

掌握 Ansys ACP 中的参考方向:简化复杂的复合材料设计

概括 在复合材料分析领域,精度至关重要,尤其是在定义纤维方向和铺层时。Ansys ACP(Ansys Composite PrepPost)提供了强大的工具来建立参考方向,这是实现精确结构模拟的关键步骤。在本博客中,我们将揭开在 …

牵手红娘:牵手App红娘助力“牵手”,脱单精准更便捷

随着互联网的普及,现代青年的社交圈层加速扩大,他们的恋爱观也正经历着前所未有的转变。在繁忙的工作之余,人们希望能够找到一种既高效又真诚的交友方式。于是,线上交友平台成为了他们寻找爱情的新选择。让不同文化背景、不同工作…

动态规划<四> 回文串问题(含对应LeetcodeOJ题)

目录 引例 其余经典OJ题 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 引例 OJ 传送门Leetcode<647>回文子串 画图分析&#xff1a; 使用动态规划解决 原理&#xff1a;能够将所有子串是否是回文的信息保存在dp表中 在使用暴力方法枚举出所有子串&#xff0c;是…

突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除

GitLab停止为中国大陆、香港和澳门地区提供服务&#xff0c;要求用户在60天内迁移账号&#xff0c;否则将被删除。这一事件即将引起广泛的关注和讨论。以下是对该事件的扩展信息&#xff1a; 1. 背景介绍&#xff1a;GitLab是一家全球知名的软件开发平台&#xff0c;提供代码托…

一网多平面

“一网多平面”是一种网络架构概念&#xff0c;具体指的是在一张物理网络之上&#xff0c;逻辑划分出“1N”个平面。以下是对“一网多平面”的详细解释&#xff1a; 定义与构成 01一网多平面 指的是在统一的物理网络基础设施上&#xff0c;通过逻辑划分形成多个独立的网络平面…

shell脚本定义特殊字符导致执行mysql文件错误的问题

记得有一次版本发布过程中有提供一个sh脚本用于一键执行sql文件&#xff0c;遇到一个shell脚本定义特殊字符的问题&#xff0c;sh脚本的内容类似以下内容&#xff1a; # 数据库ip地址 ip"127.0.0.1" # 数据库密码 cmdbcmdb!#$! smsm!#$!# 执行脚本文件&#xff08;参…

R语言数据分析案例46-不同区域教育情况回归分析和探索

一、研究背景 教育是社会发展的基石&#xff0c;对国家和地区的经济、文化以及社会进步起着至关重要的作用。在全球一体化进程加速的今天&#xff0c;不同区域的教育发展水平呈现出多样化的态势。这种差异不仅体现在教育资源的分配上&#xff0c;还表现在教育成果、教育投入与…

我用Cursor+DeepSeek做了个飞书文档一键同步插件,免费使用!

作为一个飞书文档的重度使用者&#xff0c;我基本上都是先在飞书上写好文章&#xff0c;然后再想办法搬到其他平台上&#xff0c;所以对飞书一键同步有很强的需求。​ 于是我决定做个插件来支持飞书文档的同步。​ 说实话我是第一次玩插件&#xff0c;源代码看起来有些陌生&a…

【Qt】对象树(生命周期管理)和字符集(cout打印乱码问题)

1.对象树 对象树统一管理窗口内部控件的生命周期&#xff0c;本质是一颗多叉树。 new对象会加入到对象树中&#xff0c;窗口关闭/释放时统一销毁&#xff0c;不需要手动delete。 如果在栈上定义label对象&#xff0c;生命周期随构造函数&#xff0c;无法正常显示控件。 1.1演…

v3s点RGB屏 40pin 800x480,不一样的点屏,不通过chosen。

一、背景、目的、简介。 一般来说&#xff0c;通过uboot将屏幕参数传给kernel&#xff0c;是通过修改设备树。 uboot和kernel都需要屏幕点亮。uboot侧重于显示一张图片。而kernel则多是动画。 在这里&#xff0c;我先是找到了一个裸机点屏的代码。将其编译成静态库后&#x…

密码学期末考试笔记

文章目录 公钥加密之前的部分 (非重点&#xff0c;关注工具怎么用&#xff0c;和性质)一、对称加密 (symmetric ciphers)1. 定义 二、PRG (伪随机数生成器)1. 定义2. 属性 三、语义安全 (Semantic Security)1. one-time key2. 流密码是语义安全的 四、分组密码 (Block Cipher)1…

用 gdbserver 调试 arm-linux 上的 AWTK 应用程序

很多嵌入式 linux 开发者都能熟练的使用 gdb/lldb 调试应用程序&#xff0c;但是还有不少朋友在调试开发板上的程序时&#xff0c;仍然在使用原始的 printf。本文介绍一下使用 gdbserver 通过网络调试开发板上的 AWTK 应用程序的方法&#xff0c;供有需要的朋友参考。 1. 下载 …

四种自动化测试模型实例及优缺点详解

一、线性测试 1.概念&#xff1a; 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单纯的来模拟用户完整的操作场景。 &#xff08;操作&#xff0c;重复操作&#xff0c;数据&#xff09;都混合在一起。 2.优点&#xff1a; 每个脚本相对独立&#xff0c;且不产生…

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…

链表的详解

1.单链表 1.1概念与结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 现实中数据结构&#xff1a; 1.1.1结点 与顺序表不同的是&#xff0c;链表里的每节“车厢 ”都是独立申请下…

项目实战——高并发内存池

一.项目介绍 本项目——高并发内存池&#xff0c;是通过学习并模仿简化 google 的一个开源项目 tcmalloc &#xff0c;全称 Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;模拟实现了一个自己的高并发内存池&#xff0c;用于高效的多线程内存管理&#xff…

【魅力golang】之-通道

昨天发布了golang的最大特色之一--协程&#xff0c;与协程密不可分的是通道&#xff08;channel&#xff09;&#xff0c;用来充当协程间相互通信的角色。通道是一种内置的数据结构&#xff0c;所以才造就了golang强大的并发能力。今天风云来爬一爬通道的详细用法。 通道在gol…

【论文复现】农作物病害分类(Web端实现)

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 农作物病害分类 概述演示效果核心逻辑使用方式部署方式 概述 农作物病害是国家粮食安全的一个主要威胁&#xff0c;是决定农作物产量和质量的…

Linux网络——网络基础

Linux网络——网络基础 文章目录 Linux网络——网络基础一、计算机网络的发展背景1、网络的定义&#xff08;1&#xff09; 独立模式&#xff08;2&#xff09;网络互联 2、局域网 LAN3、广域网 WAN4、比较局域网和广域网5、扩展 —— 域域网和互联网 二、协议1、协议的概念2、…

Reactor

文章目录 正确的理解发送double free问题 1.把我们的reactor进行拆分2.链接管理3.Reactor的理论 listensock只需要设置_recv_cb&#xff0c;而其他sock&#xff0c;读&#xff0c;写&#xff0c;异常 所以今天写nullptr其实就不太对&#xff0c;添加为空就没办法去响应事件 获…