我正在尝试创建一个REST Web服务,它提供与现有基于SOAP的Web服务完全相同的功能。一些soap请求可能非常复杂,我无法弄清楚如何将这些请求映射到URI。例如,以下SOAP方法体代表搜索:
<HLRequest>
<HLSearch correlId=”1”>
<criteria numHLs="10" Level="AND" matchAll="true" exactHitCount="true" suppTemp="true" suppHLOnly="true" chainHLOnly="true" startDate="2011-01-01T00:00:00" endDate="2011-01-07T23:59:59">>
<symbols>
<symbol>CSCO</symbol>
<symbol>IBM</symbol>
<symbol>MSFT</symbol>
</symbols>
</criteria>
</HLSearch>
<HLSearch correlId=”2”>
<criteria numHLs="10">
<symbols>
<symbol>GOOG</symbol>
</symbols>
</criteria>
</HLSearch>
</HLRequest>
所以我需要构建一个处理URI的方法,该方法具有无限数量的重复查询参数,我不知道如何在REST范例内完成此操作。
提前致谢, 奈德
答案 0 :(得分:1)
你的问题是你太依赖于设计模式了。有些东西是REST有用的,有些东西对它来说并不好,而你刚刚找到了后者之一。您可以想出一些方案将此数据映射到URI,但为什么要这样做?这会解决什么问题?对于这些数据,XML可能是表示它的最佳方式,那么为什么不发布XML?
答案 1 :(得分:0)
你真的需要将它们全部映射到URI吗?复杂数据的一个更好的方法是制作一些json并发布它。 Apache CXF JAX-RS支持可以自动将其映射到bean类。