将二进制数据传输到HTTP REST API服务的好方法是什么?

我们正在扩展我们的HTTP REST API以允许客户端上传图片(为了这个问题的目的,假设二进制数据)。 到目前为止,我们只允许我们的API参数中的string。 什么是允许他们上传二进制数据的好方法? 是否会要求base64编码forms? URL会变得太长,Web服务器无法处理?

任何build议/最佳实践?

只需发送二进制数据在POST正文,但与适当的内容types头(如图像/ JPEG) – 我认为这是最“RESTful”的方式。

(一般来说,在deviseREST服务的时候,一般来说,使用HTTP协议的工作越多,而不是像base64那样覆盖一些不必要和复杂的东西越好,HTTP就是最终的RESTful协议,并且内容types允许在“呈现状态转移”中的不同“表示”)

另一种可能性是要接受图像URL而不是实际的物理文件。 这使得单独的应用程序更难,例如从用户的驱动器中读取图像,但使图像可能作为另一个服务的URL返回的混搭types的应用程序更容易。

你当然可以同时允许这两个选项。