Web services 向Restful Web服务发送复杂数据——API设计

Web services 向Restful Web服务发送复杂数据——API设计,web-services,rest,restful-url,restful-architecture,Web Services,Rest,Restful Url,Restful Architecture,我正在尝试将一些基于SOAP的web服务转换为Restful web服务。在我们现有的一个基于SOAP的web服务中,我们传入一个RequstDTO,web服务返回一个ResponseDTO。RequestDTO和ResponseDTO都是复杂的Java类,其中包含其他自定义JavaBean类。这是一个“读取”操作,因此它自然映射到“GET”REST操作。将ResponseDTO转换为XML或JSON没有问题。但是我不知道如何将RequestDTO转换成restfulapi 如果我将Reques

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

  • 如果我将RequestDTO中的所有数据转换为查询字符串,那么URL将相当长。RESTful web服务通常由应用程序使用,因此浏览器URL长度限制实际上并不适用。但在大多数情况下,短URL仍然是首选
  • RequestDTO中的某些属性可能具有PHI敏感信息,我不希望将它们放在URL中
  • 一种解决方案是将请求数据嵌入到请求体中,即使这是一个GET操作。但根据我的研究,这种方式是不可取的


    那么,替代方案是什么呢?什么是正确的设计方法?

    我不太清楚为什么需要传递请求才能进行REST调用

    通常你只是做这样的事情

    获取/Resource/id 现在,如果您想要的资源类似于辅助资源。。例如,您有一个用户和属于该用户的信用卡

    GET/User/{User\u id}

    获取/User/{User\u id}/CreditCards/{credit\u card\u id}


    当然,这可以嵌套多少次

    你能举几个例子吗。否则很难回答这是一个GET操作,还是某种查询?这是一个查询。我正在尝试决定是使用GET和查询字符串,还是使用GET和请求体,还是使用POST操作。我遇到了类似的情况,发现了这个线程。您可以发布解决方案吗?在我们的例子中,查询比基于用户id和信用卡id复杂得多。我需要向web服务发送一个包含大约20-30个字段的复杂对象,以检索我需要的数据。另外,正如我在问题中提到的,有些数据与PHI有关,我不想把它们放在url中。@smk:世界上不是所有的东西都是有地址的资源。