用于指定文件对的RESTful HTTP API设计模式?

时间:2016-08-23 19:30:39

标签: rest api curl restful-architecture

我正在尝试设计一个HTTP API,调用者每次调用都会上传N对文件。我将利用一个玩具示例来指导讨论。

想象一下,我正在收集已经过修改的照片数据库。对于上传的每条记录,我需要两个文件:(1)原始照片,以及(2)篡改照片。我希望用户批量上传记录。对于此示例,我们假设用户将上传两条记录。

我考虑过两个选择:

  1. 嵌套表格:curl -F "record=@orig0.jpg,doc0.jpg" -F "record=@orig1.jpg,doc1.jpg"

    这导致顶级表单部分包含记录,其中每个记录包含子表单部分作为照片文件。

    优点:逻辑上准确。可以用卷曲来完成。

    缺点:子表单部分没有字段名称。通过其他客户很难做到。

  2. 使用动态字段名称构建部件:

    curl -F "record0_original=@orig0.jpg" -F "record0_doctored=@doc0.jpg" -F "record01_original=@orig1.jpg" -F "record1_doctored=@doc1.jpg"

    优点:所有字段标签都存在且富有表现力。

    缺点:使用动态字段名称来传递结构。

  3. 还有其他选择吗?是否存在用于指定多个二进制文件及其之间关系的既定设计模式?

0 个答案:

没有答案