RESTful 使用带有 id 或其他参数的相同端点是一个好习惯吗?
RESTful using the same endpoint with id or other parameter is a good practice?
场景
我有一个案例,我想通过 id 获取一些东西,常见的案例,有时是日期。
例如:
/companies/:id/tickets/:id
/companies/:id/tickets/:date
根据我的研究,这不是一个好的做法,但我对此表示怀疑。
我是否应该使用不带 id 的端点并使用负载来获取日期?
例如:
/companies/:id/tickets
这应该return 是那家公司的所有票吧?因此,从有效载荷中获取一些日期数据并将其用作过滤器 return 对我来说似乎不合适。如果我这样做,我的端点将不会诚实地说明它们在做什么。
我应该在这里使用什么 RESTful 练习?
/companies/:id/tickets/:id
- 这对于获取单个资源来说很好。
我认为大多数人会同意最好使用查询参数来过滤和搜索资源。事实上,JSONAPI 规范对此有专门的建议。
阅读 http://jsonapi.org/recommendations/#filtering 和其他建议,它们涵盖了像您这样的最常见的用例。
您还可以拥有一个独立的 tickets
资源并为其实施公司 ID 过滤器,一般来说,为同一资源设置多个 URL 是完全可以的。
场景
我有一个案例,我想通过 id 获取一些东西,常见的案例,有时是日期。
例如:
/companies/:id/tickets/:id
/companies/:id/tickets/:date
根据我的研究,这不是一个好的做法,但我对此表示怀疑。
我是否应该使用不带 id 的端点并使用负载来获取日期?
例如:
/companies/:id/tickets
这应该return 是那家公司的所有票吧?因此,从有效载荷中获取一些日期数据并将其用作过滤器 return 对我来说似乎不合适。如果我这样做,我的端点将不会诚实地说明它们在做什么。
我应该在这里使用什么 RESTful 练习?
/companies/:id/tickets/:id
- 这对于获取单个资源来说很好。
我认为大多数人会同意最好使用查询参数来过滤和搜索资源。事实上,JSONAPI 规范对此有专门的建议。
阅读 http://jsonapi.org/recommendations/#filtering 和其他建议,它们涵盖了像您这样的最常见的用例。
您还可以拥有一个独立的 tickets
资源并为其实施公司 ID 过滤器,一般来说,为同一资源设置多个 URL 是完全可以的。