增删改查自身信息与管理员增删改查他人信息请问后端接口分开么?

比如增删改查用户信息,与管理员增删改查下属用户信息
或者比如增删改查用户的预约信息(具体业务)
请问后端接口分开编写还是同一个接口做区分。

阅读 1.3k
2 个回答
新手上路,请多包涵

在设计后端接口时,特别是涉及不同角色(如普通用户与管理员)对资源的操作(如增删改查用户信息、预约信息等)以下是一些建议,仅供参考:

分离或合并接口的考虑因素

  • 分离接口

    • 优点 :

      • 清晰的职责分离,便于维护和扩展。
      • 更容易实现细粒度的权限控制。
      • 提高安全性,减少普通用户误访问管理员接口的风险。
  • 缺点 :

    • 可能会导致一些重复代码,需要在不同接口间共享逻辑。
  • 合并接口 :

    • 优点 :

      • 减少接口数量,可能简化API结构。
      • 共享逻辑组件,减少代码重复。
    • 缺点 :

      • 权限控制更复杂,增加错误风险。
      • 难以保证不同角色对同一接口的不同操作不会相互干扰。

推荐采用分离接口的方式,因为:

  • 清晰性 :不同角色的操作逻辑分开,接口更易理解。
  • 安全性 :容易实现严格的权限控制,减少安全隐患。
  • 可维护性 :各自接口独立,团队协作和代码维护更加便捷。
  • 扩展性 :今后如果需要为不同角色添加更多功能,基于分离接口的架构更易扩展。

一定权限控制与认证
无论接口是分开还是统一,权限控制都是必不可少的:

  • 认证 :确保每个请求都经过身份验证(如使用JWT、OAuth等)。
  • 授权 :基于用户角色(普通用户、管理员)授予不同的权限。
  • 可以在中间件中处理,根据用户角色限制对特定路由的访问。

业务相同就是一个接口,但是接口上面会做权鉴。
如果业务不相同会分多个接口。

比如说增删改查用户信息,和管理员管理下属用户信息是同一个接口。如果有课件范文的限制分页接口会做一些查询条件的限制,可以前端查询时添加查询参数,也可以按照登录用户角色在接口逻辑里面加判断。

预约信息肯定和用户信息是分开两个接口的。


社区里面会有很多类似的功能,都可以拿来借鉴的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏