Go项目视频流 | 青训营笔记

60 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

概述

不限制登录状态,返回按投稿时间倒序的视频列表,视频数由服务端控制,单次最多30个

思考

先吐槽一下,这个接口是涉及表查询最多的一个接口,好家伙,把所有的表都走了一遍呜呜呜,虽然不是复杂的查询,但是写的我人都呆呆的

  • 首先视频的链接存储的是阿里云oss的地址,我之前在思考,这个定时要定时更新吗,还是永久保存,后面想想,既然没有删除视频这个接口,那就暂时先永久保存吧,其实要改应该也不会太复杂
  • 因为每个视频都要相应的作者信息,我的想法是,中间可能有重复的作者,我考虑从Redis中去取这些数据,会不会好一点呢。后面想的是用Set去存储一个用户的喜欢列表、关注列表这样子,在这个的基础上可以很迅速的判断出是否关注
  • 在这个过程中也做了一些重构和复用,因为我发现补充作者信息的这个方法,在很多接口中都是需要使用的,于是我将它包装成了一个单独的函数,通过传入当前用户id和目标用户的id,可以得到一个用户信息:用户id、用户名、关注数、粉丝数、是否已经关注,后续还应该对当前的这个方法进行优化,让他更快。
  • 其中包括对视频列表的函数也进行了重构,将其中构建视频列表的代码抽取出去了,这样子可以和用户喜欢视频列表接口一起使用,因为二者不同的只是数据库查出来的时间罢了,只需要更换一下video列表的数据来源,其他的是一模一样的,又可以减少不少冗余代码
  • 最近还抽了很多的常量,这样子一些返回信息啊、字段名字什么的都可以使用常量,以后要修改也会方便一些