2
我们正在开发一个Web API,它可能处理大量用户提交的内容,这意味着对我们端点的调用可能不会立即返回结果。因此,我们正在考虑实现异步/非阻塞API。目前我们的计划是让用户通过提交自己的内容:实现异步Web API
POST /v1/foo
的JSON响应体包含一个唯一的请求ID(一个UUID),该用户随后提交在随后的轮询参数会在同一端点:
GET /v1/foo?request_id=<some-uuid>
如果作业完成,结果返回为JSON,否则返回状态更新(再次JSON)。
(除非他们没有上述两种调用简单地返回一个“200 OK”响应。)
这是实现异步API的一个合理的方式?如果不是什么是这样做的“正确”(和RESTful)方式?描述的模型here建议创建一个临时状态更新资源,然后创建一个最终结果资源,但这对我而言似乎不必要的复杂。
非常感谢,抱歉不早回复。博客文章中概述的模型确实似乎是实现此目的的最佳方式。 – ChrisM