遵循REST方法时,以下哪个GET请求更正确:
v1/companies/10/employees/state=approved
v1/companies/10/employees?state=approved
网上似乎有混合使用。
答案 0 :(得分:1)
只有第二种方法对我有意义。在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
答案 1 :(得分:0)
我认为这取决于国家是否是一种资源。 REST约定是Controller / Resource / Sub -Resource,例如: 书籍/漫画/ SuperMan / FirstEditon而不是 书籍/漫画/超人?版= FirstEdition
更具可读性,表示FirstEdition是资源而非状态。