将复杂的SOAP请求转换为REST URI

时间:2011-04-19 15:52:43

标签: web-services rest soap

我正在尝试创建一个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范例内完成此操作。

提前致谢, 奈德

2 个答案:

答案 0 :(得分:1)

你的问题是你太依赖于设计模式了。有些东西是REST有用的,有些东西对它来说并不好,而你刚刚找到了后者之一。您可以想出一些方案将此数据映射到URI,但为什么要这样做?这会解决什么问题?对于这些数据,XML可能是表示它的最佳方式,那么为什么不发布XML?

答案 1 :(得分:0)

你真的需要将它们全部映射到URI吗?复杂数据的一个更好的方法是制作一些json并发布它。 Apache CXF JAX-RS支持可以自动将其映射到bean类。