【问题标题】:Correct response to POST request for long running process正确响应长时间运行进程的 POST 请求
【发布时间】:2012-12-14 04:32:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails json api http-response-codes grape-api


    【解决方案1】:

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

    【讨论】:

    • 其实我应该回到这个q。这正是我现在决定要做的事情,尽管它仍然让我不满意。我会检查你是否正确:-)
    猜你喜欢
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    相关资源
    最近更新 更多