REST API 和WebService有哪些不同?

REST API 和WebService有哪些不同?,两者彼此的优略势是什么?

从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod:string GetCityWether(string city)。而RESTful WebService暴露的不是方法,而是对象(资源),通过Http GET, PUT, POST 或者 DELETE来对请求的资源进行操作。在 REST 的定义中,一个 Web Service总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。
所以我理解为rest架构定义的webservice实际上定义了一个借口的规范。
REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。
REST的思想归结以下有如下几个关键点:

1.面向资源的接口设计

所有的接口设计都是针对资源来设计的,也就很类似于我们的面向对象和面向过程的设计区别,只不过现在将网络上的操作实体都作为资源来看待,同时URI的设计也是体现了对于资源的定位设计。后面会提到有一些网站的API设计说是REST设计,其实是RPC-REST的混合体,并非是REST的思想。

2.抽象操作为基础的CRUD

这点很简单,Http中的get,put,www.hbbz08.com post,delete分别对应了read,update,create,delete四种操作,如果仅仅是作为对于资源的操作,抽象成为这四种已经足够了,但是对于现在的一些复杂的业务服务接口设计,可能这样的抽象未必能够满足。其实这也在后面的几个网站的API设计中暴露了这样的问题,如果要完全按照REST的思想来设计,那么适用的环境将会有限制,而非放之四海皆准的。

3.Http是应用协议而非传输协议

这点在后面各大网站的API分析中有很明显的体现,其实有些网站已经走到了SOAP的老路上,说是REST的理念设计,其实是作了一套私有的SOAP协议,因此称之为REST风格的自定义SOAP协议。

4.无状态,自包含

这点其实不仅仅是对于REST来说的,作为接口设计都需要能够做到这点,也是作为可扩展和高效性的最基本的保证,就算是使用SOAP的WebService也是一样。追问

谢谢你的回答!想问一下,rest有相关的教程说明吗

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-31

从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod。而RESTful WebService暴露的不是方法,而是对象(资源)。

在 REST 的定义中,一个 Web Service总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。

REST的思想归结以下有如下几个关键点:

1.面向资源的接口设计

所有的接口设计都是针对资源来设计的,也就很类似于我们的面向对象和面向过程的设计区别,只不过现在将网络上的操作实体都作为资源来看待,同时URI的设计也是体现了对于资源的定位设计。后面会提到有一些网站的API设计说是REST设计,其实是RPC-REST的混合体,并非是REST的思想。

2.抽象操作为基础的CRUD

这点很简单,Http中的get,put,www.hbbz08.com post,delete分别对应了read,update,create,delete四种操作,如果仅仅是作为对于资源的操作,抽象成为这四种已经足够了,但是对于现在的一些复杂的业务服务接口设计,可能这样的抽象未必能够满足。其实这也在后面的几个网站的API设计中暴露了这样的问题,如果要完全按照REST的思想来设计,那么适用的环境将会有限制,而非放之四海皆准的。      

3.Http是应用协议而非传输协议

这点在后面各大网站的API分析中有很明显的体现,其实有些网站已经走到了SOAP的老路上,说是REST的理念设计,其实是作了一套私有的SOAP协议,因此称之为REST风格的自定义SOAP协议。

4.无状态,自包含

这点其实不仅仅是对于REST来说的,作为接口设计都需要能够做到这点,也是作为可扩展和高效性的最基本的保证,就算是使用SOAP的WebService也是一样。

本回答被网友采纳
第2个回答  2021-05-10
从基本原理层次上说,REST 样式和 SOAP 样式 Web Service 的区别取决于应用程序是面向资源的还是面向活动的。
例如,在传统的 WebService 中,一个获得天气预报的 webservice 会暴露一个 WebMethod。而 RESTful WebService 暴露的不是方法,而是对象(资源)。

在 REST 的定义中,一个 Web Service 总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。
REST 的思想归结以下有如下几个关键点:
1.面向资源的接口设计
所有的接口设计都是针对资源来设计的,也就很类似于我们的面向对象和面向过程的设计区别,只不过现在将网络上的操作实体都作为资源来看待,同时 URI 的设计也是体现了对于资源的定位设计。后面会提到有一些网站的 API 设计说是 REST 设计,其实是 RPC-REST 的混合体,并非是 REST 的思想。
2.抽象操作为基础的 CRUD
这点很简单,Http 中的 get,put,post,delete 分别对应了 read,update,create,delete 四种操作,如果仅仅是作为对于资源的操作,抽象成为这四种已经足够了,但是对于现在的一些复杂的业务服务接口设计,可能这样的抽象未必能够满足。其实这也在后面的几个网站的 API 设计中暴露了这样的问题,如果要完全按照 REST 的思想来设计,那么适用的环境将会有限制,而非放之四海皆准的。
3.Http 是应用协议而非传输协议
这点在后面各大网站的 API 分析中有很明显的体现,其实有些网站已经走到了 SOAP 的老路上,说是 REST 的理念设计,其实是作了一套私有的 SOAP 协议,因此称之为 REST 风格的自定义 SOAP 协议。
4.无状态,自包含
这点其实不仅仅是对于 REST 来说的,作为接口设计都需要能够做到这点,也是作为可扩展和高效性的最基本的保证,就算是使用 SOAP 的 WebService 也是一样。

REST API 和WebService有哪些不同
从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod:string GetCityWether(string city)。而RESTful WebService暴露的不是方法,而是对象(资源),通过Http GET, PUT,...

REST API 和WebService有哪些不同?
从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod。而RESTful WebService暴露的不是方法,而是对象(资源)。在 REST 的定义中,一个 Web Service总是使用固定的 URI...

REST API 和WebService有哪些不同
REST 是 HTTP GET 方式 webservice 是POST特定的XML的 ~~~

REST API 和WebService有哪些不同
WebService是一个相对比较大的概念,基于WEB来提供服务都可以叫WebService,早期的SOAP和现在比较流行的REST API都是WebService的具体实现方式。所以你这个问题问得不是很好,这两个概念不是同一级别的,没法对比。

Webservice与API的区别是什么?
WebService接口和API接口的主要区别在于定义、实现方式和使用协议。首先,从定义上来看,API(应用程序接口)是一组规则和定义,它允许不同的软件应用程序相互通信。API可以看作是一种中间媒介,使得应用程序能够请求服务、数据或功能,而无需了解这些服务、数据或功能是如何实现的。相比之下,WebService是一...

WebService和Webapi的区别
1、它是基于SOAP协议的,数据格式是XML 2、只支持HTTP协议 3、它不是开源的,但可以被任意一个了解XML的人使用 4、它只能部署在IIS上 Web API特征(红色标记与WebService区别)1、这是一个简单的构建HTTP服务的新框架 2、在.net平台上Web API 是一个开源的、理想的、构建REST-ful 服务的技术 3...

webservice和restful的区别
不同平台,开发语言之间通过SOAP来交互的web service都能够较好的互通。由于没有类似于SOAP的权威性协议作为规范,REST实现的各种协议仅仅只能算是私有协议,当然需要遵循REST的思想,但是这样细节方面有太多没有约束的地方。REST日后的发展所走向规范也会直接影响到这部分的设计是否能够有很好的生命力。

webService接口是什么?
WebService接口是一种基于Web的服务接口,它允许不同的软件应用程序通过Internet或局域网进行通信和数据交换。WebService接口使用标准的互联网协议(如HTTP)和数据格式(如XML),使得跨平台、跨语言的数据交换成为可能。WebService接口的实现通常基于SOAP(Simple Object Access Protocol,简单对象访问协议)或...

REST webservice与普通的servlet有什么不同
一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种 Web Service处理方式为:a. 基于WSDL\/SOAP的方式 b. Rest方式 方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可 以使用。它不...

api接口,RPC,WebService分别解决什么问题
API只是一个实现方式,很多平台上会有api接口调用,比如聚合数据,这样使用起来非常方便。Web Service属于架构里的Web服务,RPC属于Web Service的一种使用方式。Web Service:从使用方式上,分为RPC,SOAP,REST;从数据格式上,分为XML,JSON;其中,RPC和SOAP的使用在减少,Restful架构占到了主导地位;XML...

相似回答