【发布时间】:2022-01-04 17:18:29
【问题描述】:
我想就资源粒度获得意见。比如说,我有一个名为“杂志”的域实体。但有不同类型的杂志,包括体育、自然、汽车、计算机和飞机等。 当我想创建一个新的“体育”杂志时,我应该使用以下结构:
- PUT /杂志
- PUT /体育杂志
- PUT /杂志/体育
当我想获得特定的体育杂志时,我应该说:
- GET /magazines/{id}
- GET /sports-magazines/{id}
- GET /magazines/sports/{id}
如果我想获得 2001 年的体育杂志,我应该使用:
- GET /magazines?type=sports&year=2001
- GET /sports-magazines?year=2001
- GET /magazines/sports?year=2001
最后,如果我想返回 2001 年 1 月出版的每种类型杂志的页数,我该怎么做?我需要为此创建一个新的 pages 资源吗?或者提出两个独立的请求或其他什么?下面列出了其中的第一个:
- GET /magazines/pages?type1=sports&type2=nature&year=2001&month=01
- GET /sports-magazines/pages?type=nature&year=2001&month=01
鉴于这些场景,您将如何为您的资源建模?
【问题讨论】:
标签: api rest api-design restful-url