2

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

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

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

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

4

3 回答 3

2

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

  • 无需序列化/反序列化您的 64 个字符串
  • 更容易测试你的休息 ws
  • 不那么臃肿的xml
于 2012-01-11T09:28:38.737 回答
0

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

于 2012-01-11T09:33:40.717 回答
0

HTTP 旨在传输任意长度的有效负载。发送 MB 的数据就可以了。不建议通过 base64 编码传输数据,因为它会增加您必须通过线路发送的字节数,从而降低吞吐量。

相反,我建议您考虑使用多部分 mime 类型而不是 XML。

于 2012-01-11T09:29:35.037 回答