用于入队和出队的REST动词

时间:2018-05-15 11:11:21

标签: rest http asp.net-core

我实现了一个包装队列的REST' ish API。我需要入队和出队项目。通常我会使用GET来查询,但在这种情况下,Dequeueing会通过删除项来改变状态。所以GET似乎是一个糟糕的选择。

此用例是否有标准或推荐?我考虑过PUT和POST,但我不确定哪个应该是哪个。

我可以将DELETE用于Dequeue和PUT用于Enqueue。这实际上似乎是最有意义的。

我在ASP.NET Core中实现这一点,如果这会产生影响。

1 个答案:

答案 0 :(得分:0)

PUT对于enqueue是有道理的,因为你要在集合中添加一个项目。 REST-y上下文中的GETDELETE要求您指定您正在讨论的项目,或者对整个集合进行操作,这两个项目都不适用于出列。

自定义操作的一个常见解决方案是POST/collection/<action_name>,因此在您的情况下,您可以指定POST/collection/enqueue/collection/dequeue做你的工作。

或者,HTTP动词只是文本,您可以自由创建自己的动词,因此您可以选择ENQUEUEDEQUEUE/collection