You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

归已认证用户所有的嵌套资源的REST路径命名规范是什么?

API端点命名方案选型参考

两种设计没有绝对的对错,分别适配不同的业务场景,具体选型逻辑如下:

优先选用/profile/*类无用户ID路径的场景

如果你的接口仅允许已认证用户操作自身专属资源,完全没有跨用户操作的业务需求,选这种方案优势更明显:

  • 避免路径冗余:用户身份信息可以直接从服务端的认证凭证(JWT、Session等)中提取,不需要前端额外在路径中传递用户ID
  • 天然降低越权风险:服务端不需要校验路径传入的用户ID和当前登录用户是否匹配,从接口设计层面就避免了普通用户篡改路径ID操作他人资源的漏洞

对应示例的接口就是:

  • 修改头像:PUT /profile/profile-pic
  • 添加个人爱好:POST /profile/hobbies

优先选用/users/{id}/*类带用户ID路径的场景

如果你的业务存在跨用户操作需求(比如管理员可以修改/查看任意用户的资料),选这种方案扩展性更强:

  • 接口复用性高:同一个接口可以同时覆盖两种业务场景,服务端只需要做统一的权限校验即可:如果路径中的{id}和当前登录用户ID一致,允许普通用户操作;如果不一致,校验当前用户是否有管理员等高权限身份,不需要单独开发两套接口
  • 语义更清晰:路径直接表明了操作的是哪个用户的资源,排查问题的时候也更容易定位请求对应的用户

对应示例的接口就是:

  • 修改头像:PUT /users/{id}/profile-pic
  • 添加个人爱好:POST /users/{id}/hobbies

兼顾两种需求的折中方案

如果不确定未来会不会有跨用户操作需求,可以两种形式兼容,把/profile/*做/users/me/*的别名,服务端收到路径中的me参数时自动替换为当前登录用户的ID,既保留了普通用户调用时的简洁性,也保留了管理员跨用户操作的扩展性,这也是目前多数中大型项目的通用做法。


内容的提问来源于stack exchange,提问作者ryanvb92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:15:03