抖音项目整体分析(1) | 青训营

76 阅读1分钟

接口

根据项目介绍,可分为基础接口,互动接口,社交接口,具体api如下

基础接口

/douyin/user/register
/douyin/user/login
/douyin/user
/douyin/feed
/douyin/publish/action
/douyin/publish/list

互动接口

/douyin/favour/action
/douyin/favour/list
/douyin/comment/action
/douyin/comment/list

社交接口

/douyin/relation/action
/douyin/relation/list
/douyin/relation/follower/list
/douyin/relation/friend/list

具体实现

为了方便协作编程,将三种接口分成了五个服务,分别是用户服务,视频服务,社交服务,点赞服务,评论服务

用户服务

项目的基础,需要用到用户id,和用户鉴权,来访问基本上其他所有服务。 需要实现:

  1. 用户数据表,包括基本要件-id(uuid),密码,简介,头像,背景图;联动要件-关注数,粉丝数,作品数,获赞数,点赞数;
  2. 其中图片的保存需要用到对象存储;
  3. 实现jwt鉴权;
  4. Redis string,实现用户登录限制;
  5. 密码暗文存储。 要点:
  6. 联动要件的数据,通过提供rpc接口来让其他服务修改。因此会有延迟,但是该业务下应该不要紧。
  7. 对象存储的使用

视频服务

项目的核心,包括刷视频,发布视频,列出发布视频。 需要实现:

  1. 视频信息表,包括基本要件-id,作者id,视频url,投稿时间,封面url,标题;联动要件-点赞数,评论数;
  2. 联动要件的数据,需要提供rpc接口让其他服务修改;
  3. 发布视频接口需要调用用户服务来修改用户视频数;
  4. 视频表中按用户id聚合点赞数成用户获赞数,调用用户服务修改;