java - 如何将 SOAP 方法转换为 Restful API?

标签 java spring rest soap

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

withDrawCashFromAccount(int id, int amountToWithDraw) 
depositCashToAccount(int id, int amountToDeposit)

这是不言自明的,这是一个简单的服务,因为管理团队决定转向 Restful 架构,我面临以下关于如何在 Restful API 中转换两种方法的问题

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

资源名称“帐户”

e.g Json structure:

        id : 1,
        name : "awesome customer",
        Amount : 500
  • 为了拥有上述两种类型的简单用例,用户可以 提取现金或用户可以存款,我很困惑如何设计 休息服务的终点。我可以说出他们的名字吗

    /账户/depositCash/id, /账户/withdrawCash/id

    • 我还需要考虑其他问题,例如上述调用的幂等性质吗?

目前使用 Spring Boot,从这里开始 example

最佳答案

您不一定需要发送整个 Account对象,并且您应该能够根据自己的喜好命名端点,只要它们源自相同的基本 URL;这完全取决于您如何配置服务和 POJOS。

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

在 REST 端点方法中,您可以使用 Jackson 将传入的 JSON 反序列化为 POJO。 ,甚至指定需要哪些属性,应如何反序列化/序列化它们,等等。只要您不需要这些属性或者您期望它们并不总是存在,您可以简单地允许丢失的 POJO 字段反序列化为 null。

关于java - 如何将 SOAP 方法转换为 Restful API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159179/

相关文章:

javascript - JavaScript 和 jetty 嵌入式 Websocket 服务器之间的 Websocket 困境

java - 我无法弄清楚为什么代码不断输出的值比我需要的多

java - TaskConfigurer 不考虑数据源的架构名称

java - JAX RS MediaType 注释值的格式必须为 'name=value'

java - Xydra (ReSTLess) 在 Eclipse 中检查并运行

java - JAX-RS Jersey,如何向应用程序动态添加资源或提供者

java - ReSTLet:获取请求的参数键和值

java - 在 Maven 项目中运行代码...未找到类

java - IllegalAccessError : tried to access class . ..LoggingSystemProperties 来自类 ...LoggingApplicationListener

java - 由 : org. springframework.beans.factory.NoSuchBeanDefinitionException 引起:Spring 5 中没有符合类型的 bean