我正在开发一个 RESTful API,其中http://server/thingyapi/thingyblob/1234返回与要下载的项目 #1234 关联的文件(又名“blob”)。但是可以在文件生成之前提出请求。它肯定 会 在以后提供。
http://server/thingyapi/thingyblob/1234
服务器中有一个生成所有 blob 的批处理过程。项目 1234 已经存在,并且它的数据(而不是 blob)已经可用。服务器还没有生成 1234 的 blob。
我不想返回 404;那是为了不存在的东西。这将存在,但尚未生成。有点像正在“处理”的 YouTube 视频。我认为重定向代码也不合适;没有“其他”网址可以尝试。
在这种情况下返回的正确 HTTP 状态代码是什么?
我建议202 - Accepted。从文档中:
202 - Accepted
请求已被接受处理,但处理尚未完成。[…] 它的目的是允许服务器接受对其他进程的请求(可能是一个每天只运行一次的面向批处理的进程)