REST API 用于在服务之间发送文件
REST API for sending files between services
我正在构建一个微服务,其中一个 API 需要 API 将处理的文件和一些参数以及 return 的响应。
我搜索并找到了一些参考资料,主要指向 form-data
(多部分),但它们主要指的是客户端到服务,而不是像我的情况那样的服务到服务。
我很高兴知道对于客户(实际上是一项服务)和我来说,这种情况下的最佳实践是什么。
我会不会将数据包装在表单数据中,因为它只会增加整体大小。您可以将整个原始文件放在 PUT
或 POST
请求的正文中。
如果您还需要发送元数据,我建议发送 2 个请求。如果你绝对不能做 2 个请求,表单数据可能仍然是最好的选择,它 确实 可以在服务器到服务器上工作。
我还建议对服务端点执行 POST
请求(多部分),该服务端点可以 process/accept 将字节流包装到提供的 HTML body(秒)。 PUT 请求在某些情况下也可能有效。
您主要关心的是将足够的元数据绑定到请求,以便远程服务可以正确处理它。这尤其包括以下 headers:
Content-Type
: 提供正在传输的数据的 MIME 类型并启用其正确处理。
Content-Disposition
:提供有关 body 部分的附加信息,例如文件名。
我个人认为单个请求就足够了(与 @Evert 建议相反),因为它会减少总体开销并使事情变得简单(并且 RESTful) 通过避免连续请求之间的任何链接(或状态)。
我正在构建一个微服务,其中一个 API 需要 API 将处理的文件和一些参数以及 return 的响应。
我搜索并找到了一些参考资料,主要指向 form-data
(多部分),但它们主要指的是客户端到服务,而不是像我的情况那样的服务到服务。
我很高兴知道对于客户(实际上是一项服务)和我来说,这种情况下的最佳实践是什么。
我会不会将数据包装在表单数据中,因为它只会增加整体大小。您可以将整个原始文件放在 PUT
或 POST
请求的正文中。
如果您还需要发送元数据,我建议发送 2 个请求。如果你绝对不能做 2 个请求,表单数据可能仍然是最好的选择,它 确实 可以在服务器到服务器上工作。
我还建议对服务端点执行 POST
请求(多部分),该服务端点可以 process/accept 将字节流包装到提供的 HTML body(秒)。 PUT 请求在某些情况下也可能有效。
您主要关心的是将足够的元数据绑定到请求,以便远程服务可以正确处理它。这尤其包括以下 headers:
Content-Type
: 提供正在传输的数据的 MIME 类型并启用其正确处理。Content-Disposition
:提供有关 body 部分的附加信息,例如文件名。
我个人认为单个请求就足够了(与 @Evert 建议相反),因为它会减少总体开销并使事情变得简单(并且 RESTful) 通过避免连续请求之间的任何链接(或状态)。