casa大神的网络设计方案的评论之集约型API和离散型API的理解?

问:
同一个服务,就登陆注册接口需要分别针对登陆、注册、获取用户信息等操作写不同的APImanager?这样会显得非常麻烦,架构上怎样改变能兼容账号系统一个APImanager支持多个接口(登陆、注册)

答:
我的倾向在于:

只要是不同目的的API调用,都会为它单独实现一份APIManager。

“不同目的”是指同一个API的不同目的的使用。比如获取房源的API,
这是一个API,但是这个API会带一个参数Type:二手房、新房、租房。
那么此时,我会根据获取目的,将这一个API拆成3个API。
要获取二手房房源、租房房源、新房房源就分别调用3个不同的API。而不是通过传递Type参数。

所以不同目的是针对单个API的不同目的,而不是一群API。
总的来说就是每个API对应一个APIMananger,
如果这个API设计得并不纯粹,那么就会再针对这个API的不同目的,
在Native中去实现多个APIManager。

一旦有多个API的调用放在同一个APIManager里,那么离散型API调用的好处就无法体现了

哪怕这些API是同一个系统下的,比如登录系统。

评论里我有给出我自己项目中的API列表,

同一模块的多个API最多就是放在同一个文件夹下,但是实现都是分开实现的

我需要再说明一下的是:离散型就是一个API对应单独的一个APIManager,只要一个APIManager承载了多个API的业务,那其实都是集约型,哪怕同一模块的放在一起也是集约型,只是集约的粒度更小了一些而已。这么做除了写代码的时候能偷懒少写几行以外,对于代码维护和迁移,都会带来非常大的不便。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容