休息:获取过滤约定



当遵循 REST 方法时,以下哪个 GET 请求更正确:

v1/companies/10/employees/state=approved
v1/companies/10/employees?state=approved

网上似乎有混合使用。

只有第二种方法对我来说有意义。在 RESTful 方法中,您必须使用 QueryString 来过滤返回的资源。在这种情况下,请在查询字符串中添加要用作筛选器的资源属性。例如:

v1/companies/10/employees?state=approved&attribute2=value&attribute3=value

第一个 URI 对我来说没有任何意义,因为您正在 URI 和 QueryString 之间进行混合以过滤结果。

v1/companies/10/employees/state=approved

为了澄清,让我们看另一个例子。下面的 URI 仅在"状态"和"已批准"是资源时才有意义。但是,如果它们只是员工的属性,那么它就不是RESTful。请记住,在设计 URI 时要考虑到要公开的是资源而不是方法或操作。

v1/companies/10/employees/state/approved

我认为这取决于状态是否是一种资源。 REST 约定是控制器/资源/子资源,例如:书籍/漫画/超人/第一编辑而不是书籍/漫画/超人版=第一版

更具可读性,并指示第一版是一种资源而不是一种状态。

最新更新