RESTful中个人信息与全部信息的接口设计规范

241 阅读1分钟

起因

在项目中,对数据的权限处理分为两类,全部数据与用户数据

例如用户1的计划和全部用户的计划

解决方案

假设计划接口为/plans

全部用户计划的查询很容易,/plan [GET]即可

在考虑用户1的计划查询接口时,有三种策略:

  1. /plans [GET], 查询条件中增加userId
  2. /plans/user/{userId} [GET]
  3. /user/plans [GET]

第一种存在非常严重的安全问题,userId为客户端提交的,客户端实际为用户1登录,却提交用户2的id,虽然可以用代码在后台控制,但笔者很懒,不愿意这么做

第二种首先路径不符合规范,其次也存在第一种的安全问题

第三种是笔者心中最佳的解决方案