1

我正在尝试编写一个具有长时间运行过程的 API,最终用户可能会向其发出 POST 请求:

POST /things { "some":"json" }

实际创建过程可能需要一些时间,经常会排队。可能需要很多分钟。因此,我不确定我应该返回什么或何时返回。它是通常的 201 plus 对象,在我的 API 创建对象所需的任何时间之后返回吗?这不会在客户端引起问题吗?是否有其他标准方法可以做到这一点 - 例如中间步骤?

如果有帮助,我将使用 Rails & Grape 作为我的 API。

4

1 回答 1

1

考虑Post-Redirect-Get 模式是否适合您的需求。例如,您可以将 303 重定向返回到某种状态页面,客户端可以在其中检查请求的进度。一般来说,如果客户端必须等待任何明显的时间,201+object 是一个糟糕的选择,因为太多的事情可能会出错(如果出于烦恼或不耐烦,他会杀死浏览器窗口,或刷新或重新提交怎么办?)

于 2013-01-02T18:44:16.450 回答