Java 我们应该使用什么肥皂,什么时候应该使用REST?

Java 我们应该使用什么肥皂,什么时候应该使用REST?,java,rest,soap,Java,Rest,Soap,我们什么时候应该使用肥皂,什么时候应该使用REST? 有人能给出一个合理的答案吗 这是在一次采访中被问到的。我说这取决于与其他方的合同。我不知道这是对还是错。有人能帮忙吗 我指的是下面的结构 <?xml version='1.0' Encoding='UTF-8' ?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> <env:Header>

我们什么时候应该使用肥皂,什么时候应该使用REST? 有人能给出一个合理的答案吗

这是在一次采访中被问到的。我说这取决于与其他方的合同。我不知道这是对还是错。有人能帮忙吗

我指的是下面的结构

    <?xml version='1.0' Encoding='UTF-8' ?>
    <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
     <env:Header>
      <m:reservation xmlns:m="http://travelcompany.example.org/reservation" 
            env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
       <m:reference>uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d</m:reference>
       <m:dateAndTime>2007-11-29T13:20:00.000-05:00</m:dateAndTime>
      </m:reservation>
      <n:passenger xmlns:n="http://mycompany.example.com/employees" 
            env:role="http://www.w3.org/2003/05/soap-envelope/role/next">
       <n:name>Fred Bloggs</n:name>
      </n:passenger>
     </env:Header>
     <env:Body>
      <p:itinerary xmlns:p="http://travelcompany.example.org/reservation/travel">
       <p:departure>
         <p:departing>New York</p:departing>
         <p:arriving>Los Angeles</p:arriving>
         <p:departureDate>2007-12-14</p:departureDate>
         <p:departureTime>late afternoon</p:departureTime>
         <p:seatPreference>aisle</p:seatPreference>
       </p:departure>
       <p:return>
         <p:departing>Los Angeles</p:departing>
         <p:arriving>New York</p:arriving>
         <p:departureDate>2007-12-20</p:departureDate>
         <p:departureTime>mid-morning</p:departureTime>
         <p:seatPreference></p:seatPreference>
       </p:return>
      </p:itinerary>
     </env:Body>
    </env:Envelope>

uuid:093a2da1-q345-739r-ba5d-pqff98fe8j7d
2007-11-29T13:20:00.000-05:00
弗雷德·布洛格斯
纽约
洛杉矶
2007-12-14
下午晚些时候
过道
洛杉矶
纽约
2007-12-20
凌晨

用很少的话,使用REST,您可以描述与数据库查找、插入、更新和删除相同的操作。在REST中,这样的操作与HTTP命令配对:GET、PUT、POST、DELETE。这也是REST被称为“状态转移”的原因,因为您可以像在数据库中一样移入/移出对象,换句话说,就是更改“模型”的状态


另一方面,SOAP更多地反映了一种远程调用过程(RPC),其中消息的结构主要由XML构成,这意味着在SOAP中,您不需要简单地传输数据,而是提交命令。在SOAP中,您可以像在编程语言中一样定义方法和参数。关于最后一点,允许客户端使用SOAP服务定义的“方法”(实际上是结构良好的XML消息,带有名称和参数),同一服务必须发布一个XML文档,描述它可以接受的消息及其格式:如果该方法不存在,它会抛出一个类似“不支持服务”的错误.

同意了什么?还有什么原因?