2011-05-26 56 views
4

似乎无法在任何地方找到此问题的答案。有一项服务,当发布内容时,它会被排队等待处理,响应代码为202.该标准提供了一个指向状态监视器的指针,我已经完成了该指针,但是如果客户端转到资源准备好之前的资源?我会认为404除了资源存在,只是尚未处理。REST为202码后未准备好的资源返回什么HTTP代码?

想法?

回答

1

检查this后:

当客户端检查状态URI后,如果该项目仍悬而未决则状态URI可能会返回与实体体描述这个200 OK响应。如果资源已经创建,那么状态URI可能会返回一个201 Created响应,其中Location头指向新资源的位置。如果该项目不是由于某种原因而创建的,那么状态URI可能会返回一个410 Gone响应。在这种情况下,您应该包含一个实体正文,解释为什么资源消失,即“由于处理错误,我们无法创建此资源。”404 Not Found响应也是可以接受的,但410 Gone响应意味着持久性;所请求的资源已经消失。

似乎对我比较合理,除了Location表头IMO并不特别适合这个确切的目的。

+0

嘿,谢谢!这样做更有意义。这是我开发的第一个RESTful服务,所以我仍然在学习所有的细微差别。 – SinisterMinister 2011-05-31 16:33:04

+0

200对于人类可读的机构的确定响应对于搜索引擎抓取工具来说非常混乱,所以我认为这不是您想要的。 201 Created的意思是“这个请求创建了一个新的资源”,所以它不适合投票。 410如果你想对客户说“这个资源已经没有了,再也不要求它了”,那就好了。 404听起来不错,因为它没有说明资源不可用的原因。大多数机器人稍后会重试请求,但这并不意味着“稍后再回来”。 – skalee 2013-01-21 05:07:53

相关问题