将二进制数据发布到RESTful应用程序
我正在开发一个RESTful Web应用程序(Django +
Piston)。POST请求将使用Json编码的数据发送到Web应用程序。这对于我所有的纯文本数据库表都很好,但是我还有一个存储文本和二进制文件的表。将文本和二进制数据发布到RESTful应用程序的最佳方法是什么?
回答:
您可以对它进行Base64编码并以字符串形式将其发送到JSON消息中,也可以将二进制文件作为单独的资源进行POST或PUT并在JSON消息中通过ID或URL进行引用。后一种方法是一种带外数据通道,在基于XML的协议(例如,使用XMPP的语音聊天)中非常常见。
您甚至可以轻松支持混合模型,从而:
- 小图像发送为
{"base64":"OGZmNjJmOWNhYzFlODE0NDBjYmYzNjhjYz..."}
; - 上载大图像作为参考
{"ref":"http://myserver.com/bits/E4304205-29B7-48EE-A359-74250E19EFC4"}
。
为了避免外部引用的二进制文件需要两次POST,您可以设计一些协议,该协议允许在一次传输中将JSON和二进制文件混合在一起。但是增加的收益不太可能充分奖励这种努力水平。
最后,从设计角度出发,坚持使用简单的解决方案,直到出现问题为止。
以上是 将二进制数据发布到RESTful应用程序 的全部内容, 来源链接: utcz.com/qa/403168.html