API设计-同一个数据的查询接口,普通用户和管理员是否共用?

API接口设计常常遇到的问题其中一个是 管理员和普通用户的使用的数据查询接口是共用还是分开/p>

  1. 共用难以理清内部逻辑,往往会在一个接口中添加各种分支判断
  2. 分开则会影响开发效率,毕竟一个接口现在你需要写两份

用一个例子来说明:

比如查询订单列表

代码实现:
首先尝试把所有的查询都集成到一个方法中。

上面这样做的问题:

  1. 函数参数太多了,其中夹杂普通用户的查询参数和管理员以及销售员的查询参数
  2. 函数中的逻辑判断又臭又长,随着需求增加代码逻辑会更长,也会有很多冗余的地方
  3. 用户逻辑和管理员和销售员逻辑混在在一起不容易维护,当长时间增加不同的逻辑后,开发一个新功能需要对所有的逻辑旁路进行梳理。
  4. 如果加入查询权限控制、用户权限控制,代码逻辑更为混乱。

个人建议:

  1. 如果是一套代码完成前后台功能,至少在逻辑层面进行分层,用户是用户,管理员是管理员。使用不同的逻辑空间或者文件夹进行分装。
  2. 业务逻辑层不要做权限控制,把权限控制放在控制器层(请求入口)去做,业务逻辑层只负责数据的组装。
  3. 尽量将一大片复杂的业务逻辑拆分成不同的小方法进行复用。

拆分后短期看是比较麻烦的(维护了两个代码,前期好像逻辑没有什么不同),但是长期来看,随着业务的增加,这样势必更容易维护。

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成31345 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月15日
下一篇 2022年10月15日

相关推荐