接口
根据项目介绍,可分为基础接口,互动接口,社交接口,具体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,和用户鉴权,来访问基本上其他所有服务。 需要实现:
- 用户数据表,包括基本要件-id(uuid),密码,简介,头像,背景图;联动要件-关注数,粉丝数,作品数,获赞数,点赞数;
- 其中图片的保存需要用到对象存储;
- 实现jwt鉴权;
- Redis string,实现用户登录限制;
- 密码暗文存储。 要点:
- 联动要件的数据,通过提供rpc接口来让其他服务修改。因此会有延迟,但是该业务下应该不要紧。
- 对象存储的使用
视频服务
项目的核心,包括刷视频,发布视频,列出发布视频。 需要实现:
- 视频信息表,包括基本要件-id,作者id,视频url,投稿时间,封面url,标题;联动要件-点赞数,评论数;
- 联动要件的数据,需要提供rpc接口让其他服务修改;
- 发布视频接口需要调用用户服务来修改用户视频数;
- 视频表中按用户id聚合点赞数成用户获赞数,调用用户服务修改;