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不是SOAP
或REST
,它是一个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