项目
技术
- gin
- jwt4
- gorm
- viper配置文件
- mysql
包
架构
技术点
-
数据库表的设定
-
一对一
- user----userLogin
-
一对多
- user----videos
- user----comments
- video----comments
-
多对多
- user-----favorVideo-----表favor_videos
- user----follows(关注的人)----表follows
-
-
视频存放
- static:存放所有用户的视频
- 文件夹:每个用户在static下都有一个名为其id的文件夹,创建时机为第一次上传视频时
- 文件名:采取年月日+filename的方式
- 数据库存放该视频在本地的url,如http://192.168.93.7:8080/static/1/202206091.mp4
-
时区
-
time包解析字符串--->时间,如果不用gorm约束的CreatedAt和UpdatedAt要格外注意从数据库解析时间字符串
- Parse函数,需要layout和timestr都有时区,默认返回utc时间
- ParseInLocation函数,使用本地时间,或者指定时区
-
gorm的时间配置parseTime=True&loc=Asia%2fShanghai
- 使用约束的CreatedAt和UpdatedAt,自动把当前时间存入数据库,把数据库时间字符串转为time
-
-
密码
- 采用标准库的md5加密
-
dao操作
- 使用Preload和Association方法操作表关系
-
token
- 按顺序从query,form,header中拿去token,有一个有就可以
- 按顺序从query,form拿取userId,用来和token的useId校验,没有就不用校验
-
功能的细节
-
user
- name和password长度都是 0<len<=32
-
点赞
- 可以点赞自己的视频
- 未点赞才可以点赞,点赞了才可以取消点赞,否则返回err
-
评论
- 可以发多条评论
- 对title进行长度限制,0<title<=32
-