我已经读过最好的做法是在REST中使用方法作为对资源执行的操作的指示。让我说我有5个操作,我在资源和方法下使用:
Resource /customer- POST- CreateCustomer
DELETE-delete customer
PUT-update customer
现在我还有2个查询操作:findCustomer
和queryCustomer
。
我只能为其中一个使用GET方法。处理这种情况的最佳做法是什么,因为传递一个显式的HTTP标头或额外的查询字符串来识别一个特殊的opertaion似乎不是一个好的选择!
答案 0 :(得分:0)
我还有2个查询操作:
findCustomer
和queryCustomer
。我只能对其中一个使用GET
方法。
GET
方法适用于这两种操作,但您必须使用不同的URI。
使用以下内容检索客户集合的表示形式(您定义为查询的操作):
GET /customers
可以使用查询参数过滤集合。
并使用以下内容检索单个客户的表示(您定义为 find 的操作):
GET /customers/{id}
{id}
是您客户的唯一标识符。
相关:有关每种情况下可以返回哪些状态代码的一些见解,请参阅此answer。