【问题标题】:JSON API response approach - how to send responses while not maintaining connectionJSON API 响应方法 - 如何在不保持连接的情况下发送响应
【发布时间】:2012-04-07 21:38:29
【问题描述】:

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

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

客户端发送带有要编码的影片剪辑 URL 的 JSON。服务器发送响应“ok,伙计,稍等”并结束连接。

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

您知道这种情况的任何其他方法吗?我不太相信这个回调 url。

【问题讨论】:

    标签: json


    【解决方案1】:

    我会怎么做。我会使用 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-Conversion-Status:Converting

    GET /converter/process/12335

    HTTP/1.1 200 正常

    X 转换状态:完成

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

    GET /converter/downloads/12345/myvideofile.avi

    HTTP/1.1 200 正常

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

    【讨论】:

    • 我在这里看到的问题是连接仍然保持。在第二步(转换)中,连接等待转换结果,最多可能需要 5 分钟。
    猜你喜欢
    • 2021-12-04
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    相关资源
    最近更新 更多