WS 有WS的客户端调用
REST 就是简单的HTTP请求,还可以浏览器直接调用
基于REST FUL的接口性能相比WS 好多了
WS的体系现在很完整,REST是没兴起多久的方式,不过后面REST会占很大份额
有好多人问我们在设计底层服务的时候到底是应该选择目前最流行的RestFul架构还是选择老牌的webService呢?今天我就将这两个概念做一下阐述,到底什么情况下选择什么比较合理。
首先需要了解:REST是一种架构风格,其核心是面向资源;而webService底层SOAP协议,主要核心是面向活动;
相关概念:
SOAP
什么是SOAP,我想不用多说,google一把满眼都是。其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMTP等)。但是随着SOAP作为WebService的广泛应用,不断地增加附加的内容,使得现在开发人员觉得SOAP很重,使用门槛很高。在SOAP后续的发展过程中,WS-*一系列协议的制定,增加了SOAP的成熟度,也给SOAP增加了负担。
REST
REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。SOAP类型的WebService就是最好的例子,SOAP消息完全就是将Http协议作为消息承载,以至于对于Http协议中的各种参数(例如编码,错误码等)都置之不顾。其实,最轻量级的应用协议就是Http协议。Http协议所抽象的get,post,put,delete就好比数据库中最基本的增删改查,而互联网上的各种资源就好比数据库中的记录,对于各种资源的操作最后总是能抽象成为这四种基本操作,在定义了定位资源的规则以后,对于资源的操作通过标准的Http协议就可以实现,开发者也会受益于这种轻量级的协议。
REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为:
1. 网络上的所有事物都可以被抽象为资源(resource)
2. 每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
3. 所有的操作都是无状态的
REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理。我们可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。其核心操作只有GET,PUT,POST,DELETE。由于REST强制所有的操作都必须是stateless的,这就没有上下文的约束,如果做分布式,集群都不需要考虑上下文和会话保持的问题。极大的提高系统的可伸缩性。
SOAP webService有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义。
如果从这个意义上讲,是否使用REST就需要考虑资源本身的抽象和识别是否困难,如果本身就是简单的类似增删改查的业务操作,那么抽象资源就比较容易,而对于复杂的业务活动抽象资源并不是一个简单的事情。比如校验用户等级,转账,事务处理等,这些往往并不容易简单的抽象为资源。
其次如果有严格的规范和标准定义要求,而且前期规范标准需要指导多个业务系统集成和开发的时候,SOAP风格由于有清晰的规范标准定义是明显有优势的。我们可以在开始和实现之前就严格定义相关的接口方法和接口传输数据。(很多情况下是为了兼容以前项目且前台调用逻辑代码都不能动的前提下,更改底层应用,一般就需要使用webService模式开发,因为老代码中已经有了明确的方法定义以及参数类型、个数等申明)
简单数据操作,无事务处理,开发和调用简单这些是使用REST架构风格的优势。而对于较为复杂的面向活动的服务,如果我们还是使用REST,很多时候都是仍然是传统的面向活动的思想通过转换工具再转换得到REST服务,这种使用方式是没有意义的。
相关推荐
HTTP接口和WebService接口是两种常见的服务交互方式,它们在IT领域中扮演着至关重要的角色,尤其是在分布式系统和网络通信中。 HTTP接口,全称为HyperText Transfer Protocol接口,是基于TCP/IP协议的应用层协议,...
常见的WebService接口标准有SOAP(简单对象访问协议)和REST(Representational State Transfer)。 2. **Strom的特点**: - **用户友好**:Strom界面简洁,操作直观,使得开发者无需复杂的学习过程即可上手。 - ...
3. 配置CXF:在Spring配置文件中,配置CXF的Servlet,指定服务接口和实现类。 4. 启动服务:部署应用,CXF会自动暴露SOAP Web服务。 接下来,我们讨论RESTful风格的Web服务。REST是一种轻量级的架构风格,它利用...
总之,调用WebService接口是Android开发中的重要环节,理解并熟练掌握SOAP和RESTful API的调用方法,以及相关的数据解析、错误处理、权限申请和性能优化,将有助于你构建高效、稳定的Android应用。随着技术的发展,...
总的来说,"天气预报接口/weather接口/webservice接口"涉及了分布式系统间的通信、API设计、Web服务调用和接口测试等多个IT领域的知识点。理解并熟练使用这类接口,对于开发跨平台的应用程序、构建集成解决方案或者...
文件`rest(一种软件架构风格)_百度百科.url`和`SOA接口的两种常用实现比较:SOAP(WebService) vs REST(GET,POST).url`分别指向了关于REST和SOAP/REST比较的参考资料,它们可以进一步深入理解这两种接口实现的区别...
【mas短信webservice接口】是一种基于Web服务技术的通信方式,用于实现系统间发送和接收短信的功能。在IT行业中,这种接口通常由专业服务提供商提供,以便其他应用程序或系统能够集成短信服务。在这个场景中,"mas...
这意味着EMA Webservice接口不仅提供了基础功能,还允许开发者根据自身需求对其进行修改和扩展。例如,你可以添加新的功能、优化性能或者调整接口以适应特定的业务场景。 API(Application Programming Interface)...
标签"Web service"进一步明确了我们关注的是基于Web的接口服务,这些服务遵循特定的协议标准,如SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)。SOAP是一种基于XML的协议,用于...
结合上述内容,"spring-boot-httpInterface"这个压缩包可能包含了一个Spring Boot应用,演示了如何在Spring框架下使用HttpClient调用HTTP接口和WebService。Spring Boot简化了配置,使得在微服务环境中集成...
6. **接口文档**:使用Web服务接口测试工具之前,通常需要一份接口文档,其中包含了接口的URL、请求和响应的格式、参数说明等信息,以便正确地构造请求和解析响应。 7. **安全测试**:测试工具还应考虑安全性方面,...
在Android开发中,调用WebService接口来获取火车时刻表是一项常见的任务。...以上就是关于Android调用WebService接口实现火车时刻表查询的详细讲解,涵盖了网络请求、数据解析和UI设计等关键环节。
Web Service是一种基于标准的、平台独立的接口,通常使用SOAP(Simple Object Access Protocol)协议进行通信,使用WSDL(Web Services Description Language)描述服务接口和消息格式,通过UDDI(Universal ...
本教程将深入探讨如何在Android中实现调用WebService接口进行登录功能,并基于提供的"login"源码进行分析。 首先,了解基础概念: 1. Android:Google开发的开源移动操作系统,主要应用于智能手机和平板电脑。 2. ...
Java WebService接口测试工具Storm_r1.1-Adarna是一款专为Java开发的Web服务测试解决方案,它旨在简化和加速对基于SOAP或RESTful的Web服务接口的验证和测试过程。在本文中,我们将深入探讨Java WebService接口测试的...
这种设计方式使得API接口清晰易懂,易于调试和使用。 REST方式在生成静态页面并缓存方面具有优势,因为其无状态性和统一的资源表示方式,使得静态内容的生成和缓存策略更容易实施。而SOAP由于其基于请求/响应模型,...
在"REST WebService简单应用"这个主题中,可能涉及的知识点包括如何创建一个简单的RESTful服务,使用JAX-RS(Java API for RESTful Web Services)框架,这是一个Java平台上的REST实现。JAX-RS提供了一种声明式的...
常见的Web Service技术有SOAP(Simple Object Access Protocol)、REST(Representational State Transfer)和XML-RPC等。 在标题中提到的"根据访问路径和域名调用Web Service接口",这通常指的是通过HTTP请求发送...
它通常基于XML和SOAP等标准协议来定义接口和服务,使得服务提供者与消费者可以在不同的平台上进行通信。在SAP系统中,Webservice常用于与其他系统的集成,如ERP、CRM等。 #### 三、SOAPUI简介 SOAPUI是一款功能...