我不确定哪种HTTP代码是不同场景的正确选择。
客户端可以使用PUT将实体上传到预先知道的URI。然后,在服务器上处理该实体,这可能花费一些时间(即,代码转换/处理)。如果这样做,则资源在已上载的URI下可用。
现在我不确定哪个是正确的HTTP响应代码要返回,如果客户端在处理完成之前查询资源。我正在搜索与410 Gone
相反的内容。由于应用程序体系结构,不同的客户端将在处理完成之前知道URI(至少是执行上载的客户端)。
此外,我不想使用WebDAV扩展码,尽管会有一些有效的扩展码。
我有一些初步的想法,但我不知道哪个最合适:
307 Temporary Redirect
重定向到占位符资源。405 Method Not Allowed
GET仅允许以后使用=>客户端不得缓存此答案。503 Service Unavailable
强调服务器端错误=>也许有些不清楚客户究竟出了什么问题。我应该选择什么?
答案 0 :(得分:3)
在表示可用之前,您可以返回202 Accepted以响应初始PUT,然后将204 No Content返回给任何GET请求。
答案 1 :(得分:0)
您的用例没有特定的HTTP代码。也许你想使用WebDAV的扩展名423 LOCKED:
423(已锁定)状态代码表示方法的源或目标资源已锁定。
答案 2 :(得分:0)
返回202和一个响应正文,其中包含状态和指向可监视状态的资源的链接。
当有人获取尚未准备好的资源时,请使用307到temp。重定向到该监控页面。
这要求客户端了解包含监视资源链接的实体媒体类型,因此在机器到机器系统中,如果使用HTML,则需要为此或至少某些微格式编制媒体类型。