针对多对多关系的Rest API资源设计

时间:2017-12-19 14:26:44

标签: rest entity-relationship api-design

帖子可以包含多个类别栏目类别栏目可以包含多个帖子

使用以下方式列出部分/类别

GET /posts/categories
GET /posts/sections

似乎比以下设计更好:

GET /categories
GET /sections

但如何从部分/类别中询问帖子

  • 这似乎很尴尬(或者可能不是?):

    GET /posts/sections/{id}/posts

  • 这些可能会有问题:

    GET /posts?section={id}

    因为我已经有了几个过滤器,所以我结束了:

    GET /posts?section={id}&filter1={f1}&filter2={f2}....

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我个人会使用查询参数方法来过滤帖子集合,因为它是多对多的关系,资源可以独立管理:

GET /posts?section={id}

我可能会对类别和部分使用以下映射:

GET /categories
GET /sections

例如,如果帖子集合只属于单个类别,我会使用:

GET /categories/{id}/posts