ReST:201创建后,用于轮询资源的http 204状态码
我有一个创建资源的请求(POST)。 此资源需要很长时间才能创建(长达数小时),但其ID是立即创建的。
在我看来,最合适的流程是:
POST / thing - 响应为201使用“Location头域给出的资源的URI”创建(按照http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html)
开始轮询GET / thing / id响应应该是:
只要资源尚未准备好 - 204无内容
一旦资源准备就绪 - 200响应正文返回资源
我正在寻求意见/建议,因为我基于阅读的(很多)意见和较少的经验,这似乎不同于大多数建议,最初返回202 Accepted并仅使用204来响应http DELETE
您可以选择返回202 Accepted
在POST后202 Accepted
:
该请求已被接受处理,但处理尚未完成。 该请求可能最终也可能不会最终采取行动,因为在处理实际发生时它可能会被禁止。
现在按照此处所述,您可以更改您的响应正文或标题,以包含类似于Status
值的值,该值指示用户执行GET请求时是否完成资源生成。 任何积极的状态代码都可以。
或者,如此处所倡导的,您也可以在创建实体时返回202
。
所有其他适用的状态代码可以被认为是“确定的”,因为当客户端收到204 No Content
,它不能区分“实体尚未生成”和“实体已生成,它是空的”。
上一篇: ReST: http 204 status code for polling for a resource after a 201 Created