我从未使用过SOAP或EJB。我读过关于SOAP的内容并且无法掌握一个(也许是主要的)点。
问题: 为什么要使用远程接口而不是简单的请求/响应方案?
我的注意事项: SOAP允许我们调用远程服务的方法。它使用XML。但为什么它比仅使用SOA(面向服务的方法)并发送JSON请求更好 - >获得JSON响应。我在Web应用程序和JSON的帮助下在我的应用程序中这样做。而且,SOAP很慢,似乎比我需要的方法慢。
答案 0 :(得分:1)
我认为远程接口的优点是您不必解析任何XML。当您从远程接口收到回复时,将构建一个您无需进一步处理即可使用的对象。但是,SOAP似乎是一种更流行的方法,因为您不仅限于特定环境。例如,您必须在客户端上使用java来使用远程接口,但是使用SOAP,任何客户端都可以接受并处理XML
答案 1 :(得分:1)
原因是SOAP采用契约优先的方法。这也允许我们从这些契约中构建类,因此我们拥有可以由WSDL构建的类。这非常有用,因为这意味着我们不必构建表示Web服务端点的类,但是,如果端点签名发生更改,我们需要更新相关的生成的WSDL类。
在我看来,SOAP对于.NET或Java来说更有用,因为可以从它生成的类以及IDE可以通过立即允许您访问这些类来提供的帮助。当我使用php时,我总觉得它觉得SOAP不像REST一样容易使用,因为当你想要实际发送的所有东西都是“某事真实”时,必须建立XML响应。