REST 中的子集合 api
Sub-collections in REST api
一个资源可以有多少个子集?
想象一下我们有这个模型:
帐户 -> 帖子 -> 评论
帐户-帖子对的一切都清楚了。
/账户/{account_id}/posts/{post_id}
但是评论呢?指向单个评论的正确方法是什么?
/帖子/{post_id}/评论/{comment_id}
或
/accounts/{account_id}/posts/{post_id}/comments/{comment_id}
或(直接指向)
评论/{comment_id}
一般的经验法则是只深入一层子资源。一个帐户可能有很多 post 就像你展示的那样,一个 post 可能有很多评论,但是由于 post id 是唯一的,所以在尝试时包含帐户 id 有点多余获取 post 的评论。
/账户/:account_id/posts
/posts/:post_id/comments
Ruby 在 Rails 上也在他们的文档中列出了这个(只是为了一点引用)。 https://guides.rubyonrails.org/routing.html#limits-to-nesting
此外,如果您已经有了资源的 ID,则无需嵌套它。尽可能缩短完成工作的路线是首选。
/评论/:id
一个资源可以有多少个子集?
想象一下我们有这个模型: 帐户 -> 帖子 -> 评论
帐户-帖子对的一切都清楚了。 /账户/{account_id}/posts/{post_id}
但是评论呢?指向单个评论的正确方法是什么?
/帖子/{post_id}/评论/{comment_id}
或
/accounts/{account_id}/posts/{post_id}/comments/{comment_id}
或(直接指向)
评论/{comment_id}
一般的经验法则是只深入一层子资源。一个帐户可能有很多 post 就像你展示的那样,一个 post 可能有很多评论,但是由于 post id 是唯一的,所以在尝试时包含帐户 id 有点多余获取 post 的评论。
/账户/:account_id/posts
/posts/:post_id/comments
Ruby 在 Rails 上也在他们的文档中列出了这个(只是为了一点引用)。 https://guides.rubyonrails.org/routing.html#limits-to-nesting
此外,如果您已经有了资源的 ID,则无需嵌套它。尽可能缩短完成工作的路线是首选。
/评论/:id