创建最佳API:上传N个文件和json元数据

时间:2018-09-12 14:32:06

标签: rest api http httpapi

我正在创建一个API。

我不确定API的外观。

几个BLOB文件(PDF,JPG,ZIP等)应上传并 一些包含元数据的JSON。

设计API的最新方法是什么?

有两种情况:

  • 上传成功。然后我认为201(创建的)将是可行的
  • 上传失败(例如无效的元数据)。然后应返回422(不可处理实体)。

示例:

  • 应立即上传三个与某些json元数据相关联的pdf文件。

1 个答案:

答案 0 :(得分:2)

您经常看到的是,您有一个用于处理BLOB的资源,一个用于元数据的资源-Facebook和Twitter正在针对图像和视频进行此操作。

例如/files将获取您的BLOB数据并返回上载的BLOB数据的ID。

元数据将发送到另一个资源/posts,并可能消耗application/json

在我目前工作的应用程序中,我们遇到了同样的问题,并决定使用一个消耗multipart/form-data的端点-在这里您可以在不同的边界内发送BLOB和元数据,并将所有资源都存储在一个资源中。

另一种方法是base64对BLOB进行编码,这将导致33%的开销,因此我不建议这样做。但是使用base64,您可以在一个application/json资源中完成所有工作。