SOAP网址和REST网址不同

目前我正在使用Axis2来制作一些REST API。 我对SOAP风格的URL和REST风格的URL之间的区别感到困惑。 任何人都可以解释吗?

例如,对于用java编写的服务器API,如下所示:

package cn.edu.xidian;

public class Salary {
    public int getSalary(String name) {
        if ( name.equals("zhangsan") ) {
            return 3000;
        } else if ( name.equals("lisi") ) {
            return 4000;
        } else 
            return 5000;
    }
}

获取此服务的REST URL将如下所示:

http://localhost:8080/axis2/services/SalaryService/getSalary?name=zhangsan

如果我的理解是正确的,这个url进入服务器端API,调用方法'getSalary',参数'name'等于'zhangsan',然后浏览器中的RESTful输出如下所示:

<ns:getSalaryResponse>
    <ns:return>3000</ns:return>
</ns:getSalaryResponse>

那么SOAP样式的URL和相关内容会是什么样子?


本身的URL不是SOAPREST ,它是一个URL。 (是SOAPy和RESTful的形容词吗?)

首先,您的REST资源的示例:

  http://localhost:8080/axis2/services/SalaryService/getSalary?name=zhangsan

看起来你正在建立一些类型的RPC over HTTP,就像你试图使用准REST结构来实现远程函数调用一样。 许多人不会考虑这个好的REST。

SOAP是一种在某些传输层上实现的XML编码消息传递系统。

SOAP不限于用于传输的HTTP,而REST本质上也是如此。 您可以通过URL为HTTP传输SOAP以及构建这些URL的事实是无关紧要的。 而且,大多数SOAP API可能大部分都是通过HTTP实现的,这一事实也无关紧要。

REST是一种使用HTTP动词(PUT,GET,POST等)和响应代码的概念,因为它们旨在作为访问和控制资源的协议。 这包括创建,修改,删除等这些资源。

SOAP url的结构实际上可能看起来与REST API完全相同,但对于REST,结构应强烈反映资源的逻辑结构。 您不必完全使用RESTful,但如果您的REST API不适合开发人员, SOAP不一定需要具有良好的反映数据结构的URL,因为您可以提供一个WSDL,它概述并描述可用于任何使用的URL结构的SOAP服务。 事实上,我已经看到了很多完全可以接受的SOAP服务,这些服务在过去的时间里似乎被随意丢弃,并没有反映任何类型的结构。

链接地址: http://www.djcxy.com/p/71395.html

上一篇: Different Between SOAP url and REST url

下一篇: Restful vs Soapbased