Rest 剩余和子集合

Rest 剩余和子集合,rest,restful-architecture,restful-url,Rest,Restful Architecture,Restful Url,我有资源集合用户,每个用户都可以有一个过滤器,因此另一个资源集合是过滤器 因此,要检索过滤器,我们有以下url /users/:id/filters url应该如何按id检索筛选器 /用户/:id/过滤器/:id /过滤器/:id /users/:id/filters/:id更有意义,因为查询是检索与特定用户相对应的特定筛选器。筛选器是一级实体还是由用户所有?例如,筛选器是否属于两个用户或以其他方式放置,是否创建了一个筛选器,然后将其分配给一个或多个个人 如果过滤器是用户的属性(一个过滤器对

我有资源集合用户,每个用户都可以有一个过滤器,因此另一个资源集合是过滤器

因此,要检索过滤器,我们有以下url

/users/:id/filters
url应该如何按id检索筛选器

  • /用户/:id/过滤器/:id
  • /过滤器/:id

/users/:id/filters/:id更有意义,因为查询是检索与特定用户相对应的特定筛选器。

筛选器是一级实体还是由用户所有?例如,筛选器是否属于两个用户或以其他方式放置,是否创建了一个筛选器,然后将其分配给一个或多个个人

如果过滤器是用户的属性(一个过滤器对一个用户,一个用户对一个或多个过滤器)/users/:id/filters/:id很有意义。如果过滤器本身是与用户相关的不同对象(每个过滤器有一个或多个用户),那么根据用户预期使用API的方式,任何一个API(甚至两个)都可能有意义。如果他们只关心过滤器,/filter/:id是有意义的,如果他们只关心用户的过滤器/users/:id/filters/:id是合适的,或者如果他们的需求在两者之间有所不同,那么两者兼而有之是明智的解决方案

  • 在根目录下为所有资源分配一个规范URI(例如,
    /companys/{id}
    /employees/{id}
  • 如果一个资源没有另一个资源就无法存在,则应将其表示为其子资源
  • URL更短,更容易记忆,并且不需要太多参数


    如果我们将有3、4个级别呢?对于上面的一个或两个级别,语法是有意义的。但对于两个以上的问题,我建议您编写一个静态URL(/users/getFilters),并将其余参数作为JSONAs JSON发送,但这是GET,所以您是否建议在正文中为GET发送参数?作为正文参数或在URL本身中使用查询参数。@Romper-这是否回答了您的问题?用户可以有一个或多个筛选器,它只能属于一个用户。我认为最常见的情况是,如果不是过滤器,而是产品,那么产品将如何?