REST二进制数据

时间:2012-01-11 09:20:26

标签: java rest binary jaxb resttemplate

我正在构建一个REST服务,接受包含String 二进制数据混合的Foo个对象。这是我到目前为止获得的XML。

<foo>
     <text>regular text</text>
     <text mime="application/octet-stream">base64 encododed binary data</text>
</foo>

这是一个好主意还是存在大量(MB)二进制数据的缺点?

作为次要的设计细节,我试图在使用<text mime=".."/>或专用名称<binary>...</binary>之间解决二进制数据问题。哪个更连贯?

3 个答案:

答案 0 :(得分:2)

我建议在您的请求/响应xml中仅包含您要存储要传递的二进制数据的位置,然后检索执行另一个请求的数据。 该解决方案的缺点是执行另一个请求,但专业人员在您身边:

  • 无需序列化/反序列化64个字符串
  • 更轻松地测试你的休息时间
  • 少臃肿的xml

答案 1 :(得分:0)

HTTP旨在传输任意长度的有效载荷。发送MB数据将没有问题。 建议不要通过base64编码传输数据,因为它将增加必须通过线路发送的字节数,从而降低吞吐量。

我建议您考虑使用multipart mime type而不是XML。

答案 2 :(得分:0)

你的webservice容器是什么? xml的格式将由二进制序列化程序生成。 axis2可能对你有好处。它基于公理,提供直接二进制支持