假设我有一个拥有帐户的应用程序,我可以将它们表示为其余资源,如:
/accounts //single account
/accounts/{id} //a specific account
1)如果某个帐户有帐户状态,这是引用它的正确方法吗?
/accounts/{id}/status
2)我如何在REST中表示搜索,说我想搜索和以“ABC”开头的帐户?
答案 0 :(得分:2)
如果某个帐户有帐户状态,这是正确的方法吗? 引用它?
也许,如果帐户状态本身就是一个完全成熟的数据对象。如果它是一个简单的标量值,您可以考虑使用参数来约束从/accounts/{id}
返回的值,例如GET /accounts/{id}?field=status
。
如何在REST中表示搜索,说我想搜索并以“ABC”开头的帐户?
使用网址参数:
GET /accounts/?search=ABC*
答案 1 :(得分:0)
您正在将URL中的名词和动词混合在一起,这通常不是RESTFul方法。 In this article他们谈论在你的网址中代表名词和动词的差异。搜索虽然是一个不同的野兽,并尝试了几种不同的方式,我更喜欢遵循搜索自己的网址的方法。这样做的一个原因是在GET请求上获得缓存,您可以使URL以搜索为中心。查询参数不会被缓存,因此这是另一个反对使用它们作为我们的GET请求结束时的参数的参数。 This article更多地讨论了我喜欢使用的方法。