1

我正在创建一个 API。

我不确定 API 应该是什么样子。

应该上传几个 BLOB 文件(PDF、JPG、ZIP...)和一些包含元数据的 JSON。

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

有两种情况:

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

例子:

  • 应该(一次)上传三个与一些 json 元数据相关联的 pdf 文件。
4

1 回答 1

2

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

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

元数据将被发送到另一个资源,称为/posts并可以使用application/json

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

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

于 2018-09-17T07:35:05.640 回答