这是我参与[第五届青训营]伴学笔记创作活动的第5天
主要是我做需求的时候提前搭建的框架,只不过很多不足的地方,等后续功能做得差不多了再来完善。 我在团队中主要针对video表的做的三个需求,如下:
(1)视频投稿接口
接受参数:用户鉴权token、视频流数据data、视频标题title
请求类型:POST /douyin/publish/action
请求体:JSON数据
响应体:状态码status_code 返回状态status_msg
视频投稿业务流程
登录用户选择视频上传。
1 鉴权(判断用户是否登录)
(1)如果已经登录,进入2
(2)如果未登录,则返回status_code=0 status_msg = "投稿失败,您未登录"
2 判断用户视频数据或者视频标题是否为空
(1)只要有一个为空则返回status_code=0 ,status_msg = "投稿失败,请保证填写必要数据"
(2)都不为空,进入3 ,并且返回status_code=1 ,status_msg = "投稿成功"
3把视频数据存放在后台
4添加记录到数据库
视频稿件表中添加一条记录,包括以下字段
id(递增), user_id(根据token去用户信息表查id) ,play_url(视频存放地址),title,(传过来的参数),cover_url(这个从哪里来?),favorite_count(默认为0),comment_count(赋0),is_favorite(赋0)、create_time(go语言会自动生成应该)
5返回给前端status_code status_msg
(2)发布列表接口
接受参数:用户鉴权token、目标用户id
请求类型:GET /douyin/publish/list
请求体:JSON数据
响应体:状态码status_code 返回状态status_msg video_list
发布列表业务流程
登录用户的视频发布列表,直接列出某个用户所有投稿过的视频。
1 鉴权(判断用户是否登录)
(1)如果已经登录,进入2
(2)如果未登录,则返回status_code=0 status_msg = "请先登录"
2 根据目标用户id查询目标用户信息 author
(1)如果查不到则返回status_code=0 status_msg = "目标用户不存在"
(2)如果能查到,则进入3
3.video_list包括以下字段
根据目标用户id查询
author User(2中查出来的用户信息)
Video:
id(递增),play_url(视频播放地址)、cover_url(视频封面地址)、favoriteCount(视频点赞总数)、commentCount(视频评论总数)、isFavorite(是否点赞)、userID(目标用户)
4.封装到video_list中
5返回给前端status_code = 1 status_msg="查询成功" ,video_list
(3)视频流接口业务流程
接受参数:lastest_time(可选参数,限制返回视频的最新投稿时间)、用户鉴权(可选参数)token
请求类型:GET /douyin/feed
请求体:JSON数据
响应体:状态码status_code 返回状态status_msg video_list
next_time 本次返回视频中,发布最早的时间,作为下次请求时的lastest_time
视频流业务流程
不限制登录状态,返回按投稿时间倒序的视频列表,视频数由服务端控制,单次最多30个
1.video_list包括以下字段
查询前30个最新时间 Video:
id(递增),play_url(视频播放地址)、cover_url(视频封面地址)、favoriteCount(视频点赞总数)、commentCount(视频评论总数)、isFavorite(是否点赞)、userID(目标用户)
author User(根据userID查询)
status_code = 1 status_msg="查询成功"
next_time(根据video去拿)
问题:(1)如何查询前30个? (2)如何拿到这30个中的最后一个? 使用gorm中的limit和排序
3.封装到video_list中
4.返回给前端status_code = 1 status_msg="查询成功" ,video_list next_time(返回的30中最早的)