我目前使用RESTful API开发任务队列。纠正不可满足的REST请求的HTTP状态代码
为了处理任务,工作人员必须创建一个租约。
PUT .../leases
如果任务队列中有任务可用,这会成功,租约将被创建并在服务器状态201
响应。
我不确定在没有任何任务可用时如何处理这种情况。当没有可用的任务时,无法创建租约。哪种HTTP状态码适合这种情况?
204 No Content
- 客户端没有出错,但没有数据。400 Bad Request
- 这是恕我直言不适用,因为它意味着,这是不是这种情况
与此同时,我认为“请求无法被服务器理解”,这种方法可能不是理想的。我可以按照Brian的推荐使用503
,也可以使用REST in practice,否则我会改变整个过程。
我在考虑可以暂时创建的租约。这意味着
PUT
到/leases
- 可以创建一个租赁,分配任务,并与
201
回应,或创建一个试探性租赁与202
- 暂定租赁响应会停留一段时间。如果任务可用,则将其分配给暂定租约。如果对于一个特定的时间内没有任务,租赁被删除,服务器将与
410
- 响应客户端应该因为资源是由服务器控制,然后再以1
我不喜欢说的概念,资源不存在,因为它是存在的。也许我的做法是错误的。 – ccellar
查看它的一种方法是,如果您尝试在不存在的博客上查看页面,则会得到404页面。如果该页面被创建,它将不再是404。它仍然不是一个确切的适合,但我不认为他们中的任何一个。 – abraham