如何将SOAP方法转换为restful API?

时间:2018-05-03 15:49:57

标签: java spring rest soap

我是Rest服务世界的新手,我有简单的名称为

的SOAP服务
withDrawCashFromAccount(int id, int amountToWithDraw) 
depositCashToAccount(int id, int amountToDeposit)

这是一个自我解释,这是一个简单的服务,因为管理团队决定转向宁静的架构,我面临如何在restful API中转换两个方法的以下问题

  • 为了更改资源中的单个列,我们是否需要发送 完整的资源JSON结构?。

资源名称“帐户”

e.g Json structure:

        id : 1,
        name : "awesome customer",
        Amount : 500
  • 为了拥有用户可以使用的上述两种简单用例 提取现金或用户可以存款,我很困惑我怎么设计 休息服务的终点。我可以命名吗

    /帐户/ depositCash / ID, /帐户/ withdrawCash / ID

    • 我需要考虑的其他事情,就像上述电话的幂等性一样?

目前使用来自此example

的春季启动

1 个答案:

答案 0 :(得分:0)

您不一定需要发送整个Account对象,只要它们来自相同的基本URL,您就应该能够为任何您喜欢的端点命名。这一切都取决于您如何配置服务和POJOS。

例如,使用JAX-RS,您可以使用@Path("path/you/want/here")注释服务类,以指定该服务中可访问的所有方法的基本路径,然后为每个方法指定更具体的@Path注释为它们提供唯一路径的方法(方法级别@Path注释被添加到类级别1的末尾)。您可以使用@GET@POST等HTTP动词注释来注释公共方法,以指定该方法将采用的动词。

在REST端点方法中,您可以使用Jackson将传入的JSON反序列化为POJO,直到指定需要哪些属性,如何反序列化/序列化等等。只要您不需要属性或者您希望它们不会始终存在,您就可以简单地允许缺少POJO字段以反序列化为null。