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

REST API设计获取用户帖子的正确端点:/users/:id/posts还是/posts/user/:id

REST API端点设计:获取指定用户ID的帖子列表

首先给出结论:/users/:id/posts 是更符合REST设计规范的实现方案,具体原因如下:

  • REST API的核心设计逻辑是围绕资源做层级化路由,帖子本身是从属用户的子资源,路由结构可以直接体现资源的从属关系:/users/:id 已经唯一标识了对应ID的用户资源,其后拼接/posts就自然代表该用户名下的所有帖子集合,语义完全自解释,调用方不需要额外查阅文档就能理解接口作用。
  • /posts/user/:id 的设计不符合常规的资源分层逻辑,本质是把「用户ID过滤」的逻辑硬编码到了路由层级中,后续如果要新增更多过滤规则(比如按发布时间、帖子分类筛选用户的帖子),这种路由结构会越来越冗余难维护。而/users/:id/posts的结构可以直接通过查询参数扩展,比如/users/:id/posts?published_after=2024-01-01&category=tech,拓展性更强。
  • 从项目维护的角度看,层级化的资源路由更方便做统一的逻辑拦截,比如所有匹配/users/:id/*规则的路由都可以统一做「用户ID有效性校验」「对应资源访问权限校验」,不需要单独为/posts/user/:id额外开发一套校验逻辑,能减少重复代码。

补充说明:如果你的业务中确实存在大量「脱离用户上下文,直接按用户ID过滤全量帖子」的需求,也可以额外保留/posts?user_id=:id的接口作为补充,和/users/:id/posts共存适配不同调用场景,灵活度比/posts/user/:id更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:36:03