JSON API响应方法 - 如何在不保持连接的情况下发送响应

时间:2012-03-23 10:08:15

标签: json

我正在开发一个简单的JSON API,允许用户将短片段编码成不同的格式。

我现在正在努力解决的问题是如何在编码完成后发送响应?假设平均编码需要1分钟。因此,保持连接1分钟只是为了发送带编码电影URL的响应是没有意义的。

客户端使用要编码的影片剪辑的URL发送JSON。服务器发送响应“ok dude,hold on a sec”并结束连接。

我想到的一种方法是强制客户端提供回调网址。编码过程完成后,我的API可以将JSON发布到该URL,并准备下载编码电影的地址。

您知道这种情况的其他方法吗?我对这个回调网址并不太相信。

1 个答案:

答案 0 :(得分:0)

我将如何做到这一点。我会使用3个URI:一个众所周知的固定URI用于上传原始视频,一个临时URI用于监控进度,另一个临时URI用于下载转换后的视频。我会返回一个content-Location标头来指示客户端下一步的位置:

POST / converter?output = AVI

HTTP / 1.1 201已创建

内容 - 位置:/ converter / process / 12345

GET / converter / process / 12345

HTTP / 1.1 200确定

X-转换器状态:转换

GET / converter / process / 12335

HTTP / 1.1 200确定

X转换状态:完成

内容 - 位置:/converter/downloads/12345/myvideofile.avi

获取/converter/downloads/12345/myvideofile.avi

HTTP / 1.1 200确定

我会在一段时间后自动清理临时资源。