# 《分布式IM系统》大后端平台-好友服务-第01节:好友服务常规功能的设计和实现
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
课程视频:https://t.zsxq.com/17uW6mUOX (opens new window)
沉淀,成长,突破,帮助他人,成就自我。
- 本节难度:★★☆☆☆
- 本节重点:思考分布式IM即时通讯系统关于好友业务的流程,结合好友微服务梳理好友相关的功能点,设计和实现好友微服务的常规功能,掌握在DDD领域架构模式下,掌握后端常规功能的设计和实现,并能够将其灵活应用到自身实际项目中。
- 课程视频:https://t.zsxq.com/17uW6mUOX (opens new window)
大家好,我是冰河~~
在分布式IM即时通讯系统中,关于好友微服务相关的功能同样不多,大部分也都是一些常规的CRUD操作。但是,对于用户微服务的常规功能来说,重点是思考这些功能背后的设计逻辑和实现意义。
# 一、前言
在前面的文章中,我们总体上实现了用户微服务的主要功能,用户微服务的功能相对来说比较完善了。同样,对于好友微服务来说,需求和功能也比较简单,我们要做的重点就是梳理清楚好友微服务要提供的功能,并重点思考实现这些功能背后的设计逻辑。
# 二、本节诉求
对好友微服务的常规功能进行设计和实现,掌握常规功能的接口设计,掌握后端常规功能的设计和实现,并能够将其灵活应用到自身实际项目中。
# 三、功能梳理
前面说过,在整个分布式IM即时通讯系统中,好友微服务的功能其实也并不多,也比较简单,关键是要梳理出好友微服务到底应该存在哪些功能,才能满足分布式IM即时通讯系统对好友关系功能的需求。 对于好友微服务来说,我们可以结合微信来思考,为好友微服务设计一些最基础的功能,例如,添加好友、删除好友、更新好友信息(主要是更新好友的昵称备注等)、获取好友列表以及查看好友信息等。那这样一来,好友微服务的功能就如图1-1所示了。
每个功能点的说明如下所示。
- 添加好友:用户可以在系统中添加其他用户为自己的好友。
- 删除好友:用户可以在系统中删除自己的好友。
- 更新好友:用户可以在系统中更新自己好友的昵称备注。
- 获取列表:用户可以在系统中查看自己的好友列表。
- 查看详情:用户可以在系统中查看某个好友的详情信息。
# 四、接口设计
通过对功能的梳理,我们可以大体梳理出好友微服务需要提供的接口如下所示。
接口名称 | 请求方式 | 接口链接 | 备注说明 |
---|---|---|---|
添加好友 | POST | http://{ip:port}/friend/add | 预留调用用户微服务接口 |
删除好友 | DELETE | http://{ip:port}/friend/delete/{friendId} | |
更新好友 | PUT | http://{ip:port}/friend/update | |
获取列表 | GET | http://{ip:port}/friend/list | |
查看详情 | GET | http://{ip:port}/friend/find/{friendId} |
每个接口的数据交互格式如下所示。
# 查看完整文章
加入冰河技术 (opens new window)知识星球,解锁完整技术文章与完整代码