将复杂数据发送到Restful Web Service - API设计

时间:2013-02-27 01:39:43

标签: web-services rest restful-url restful-architecture

我正在尝试将一些基于SOAP的Web服务转换为Restful Web服务。在我们现有的基于SOAP的Web服务之一中,我们传入RequstDTO,Web服务返回ResponseDTO。 RequestDTO和ResponseDTO都是复杂的Java类,其中包含其他自定义JavaBean类。它是一个“READ”操作,因此它自然地映射到"GET" REST操作。将ResponseDTO转换为XML或JSON没有问题。但我不确定如何将RequestDTO转换为RESTful API。

  1. 如果我将RequestDTO中的所有数据转换为查询字符串,则URL将会很长。 RESTful Web服务通常由应用程序使用,因此浏览器URL长度限制并不真正适用。但在大多数情况下,仍然首选短网址。
  2. RequestDTO中的某些属性可能包含PHI敏感信息,我不想将它们放在网址中。
  3. 一种解决方案是将请求数据嵌入请求正文中,即使它是GET操作。但根据我的研究,这种方式是不鼓励的 http://tech.groups.yahoo.com/group/rest-discuss/message/9962

    那么替代方案是什么?设计这个的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我不确定为什么你需要传递requestDTO才能进行REST调用。

通常你只是做这样的事情

GET /资源/ ID 现在,如果您想要的资源类似于辅助资源。例如,您拥有属于用户的用户和信用卡。

GET / User / {user_id}

GET / User / {user_id} / CreditCards / {credit_card_id}

当然,这可以嵌套多次你想要的。