小编典典

将二进制数据发布到RESTful应用程序

json

我正在开发一个RESTful Web应用程序(Django +
Piston)。POST请求将使用Json编码的数据发送到Web应用程序。这对于我所有的纯文本数据库表都很好,但是我还有一个存储文本和二进制文件的表。将文本和二进制数据发布到RESTful应用程序的最佳方法是什么?


阅读 484

收藏
2020-07-27

共1个答案

小编典典

您可以对它进行Base64编码并以字符串形式将其发送到JSON消息中,也可以将二进制文件作为单独的资源进行POST或PUT并在JSON消息中通过ID或URL进行引用。后一种方法是一种带外数据通道,在基于XML的协议(例如,使用XMPP的语音聊天)中非常常见。

您甚至可以轻松支持混合模型,从而:

  1. 小图像发送为{"base64":"OGZmNjJmOWNhYzFlODE0NDBjYmYzNjhjYz..."};
  2. 上载大图像作为参考{"ref":"http://myserver.com/bits/E4304205-29B7-48EE-A359-74250E19EFC4"}

为了避免外部引用的二进制文件需要两次POST,您可以设计一些协议,该协议允许在一次传输中将JSON和二进制文件混合在一起。但是增加的收益不太可能充分奖励这种努力水平。

最后,从设计角度出发,坚持使用简单的解决方案,直到出现问题为止。

2020-07-27