# 《分布式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)知识星球,解锁完整技术文章与完整代码