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

时间:2009-10-02 14:07:41

标签: http api rest

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

有任何建议/最佳做法吗?

1 个答案:

答案 0 :(得分:42)

只需在POST主体中按原样发送二进制数据,但使用相应的Content-Type标头(例如image / jpeg) - 我认为这是最“RESTful”的方式。

(一般来说,在设计REST服务时,根据经验,使用HTTP协议的次数越多,而不是像base64那样尝试覆盖不必要和复杂的东西,就越好.HTTP是最终的RESTful协议,以及内容类型允许“REpresentational State Transfer”中的不同“表示”)

要记住的另一种可能性是接受图像URL而不是实际的物理文件。这使得独立应用更难以实现,例如从用户的驱动器读取图像,但使mashup类型的应用程序更容易,其中图像可能作为来自其他服务的URL返回。

当然,您可以同时使用这两个选项。