我实现了一个包装队列的REST' ish API。我需要入队和出队项目。通常我会使用GET来查询,但在这种情况下,Dequeueing会通过删除项来改变状态。所以GET似乎是一个糟糕的选择。
此用例是否有标准或推荐?我考虑过PUT和POST,但我不确定哪个应该是哪个。
我可以将DELETE用于Dequeue和PUT用于Enqueue。这实际上似乎是最有意义的。
我在ASP.NET Core中实现这一点,如果这会产生影响。
答案 0 :(得分:0)
PUT
对于enqueue是有道理的,因为你要在集合中添加一个项目。 REST-y上下文中的GET
和DELETE
要求您指定您正在讨论的项目,或者对整个集合进行操作,这两个项目都不适用于出列。
自定义操作的一个常见解决方案是POST
到/collection/<action_name>
,因此在您的情况下,您可以指定POST
到/collection/enqueue
和/collection/dequeue
做你的工作。
或者,HTTP动词只是文本,您可以自由创建自己的动词,因此您可以选择ENQUEUE
和DEQUEUE
到/collection
。