REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
REST(REpresentational State Transfer),中文翻译为表述性转移。这个概念在Roy Thomas Fielding的paper中得到了很好的论证。文章的题目叫《Architectural Styles and the Design of Network-based Software Architectures》,是一篇架构描述不可多得的文章。
REST的风格主要有以下特点:
1、REST风格 的服务是通信无状态的(communicate statelessly)
从客户端向服务器发出的每一次请求都必须包含理解该请求的所有必须信息。不能利用服务器上的上下文。
2、具有统一的接口。
如:GET、POST、DELETE、PUT等,这些接口能基本完成日常所需的CRUD操作。
3、所有信息都被抽象为资源,并用一个URI唯一标识。
4、REST组件通过交换资源的表述来对资源进行处理,资源的多重表述。
如后台的多样化返回:XML或JSON等。这是REST和RPC(Remote Procedure Call)方法的主要区别。
REST强调的是组件交互的伸缩性,接口的通用性,组件部署的独立性。以JWS为例,在实际开发中可以用XSLT和JAXP完成数据的转换工作。所以,我们可以用JWS方式来部署REST服务。又回到了之前提出的疑问了,SOA这样的架构或者拿CXF写的服务和REST之间到底有什么区别。
使用REST风格来做服务的话,对程序的侵入性可以讲到很低,不用像传统的WSDL开发那样,往自己程序里写东西。而且REST的统一接口有利于服务的维护。当然也正是因为使用这些统一接口使得服务的灵活性不是那么的好,虽然减少了服务端的开发量,但是增加了前台的开发量。所以我觉得可以将两者结合开发,针对那些通用的,对外的可用REST风格包装成Facade,而那些特定的,需要订制的,则采用SOA的方式部署。
分享到:
相关推荐
Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API前后端分离精讲第六章节Python Flask高级编程之RESTFul API...
Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask高级编程之RESTFul API前后端分离精讲Python Flask...
Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API前后端分离精讲第二章节Python Flask高级编程之RESTFul API...
thinkphp6 RESTful API开发 开发过程记录笔记 https://blog.csdn.net/weixin_41120504/article/details/115638094
此代码通过c c++实现一个简单的http服务,可以用此实现一个restful api 服务器.
RESTful API设计规范.pdf
restful api 接口说明. 总结 restful api 语法知识和常用的状态码含义.
restful api访问k8s集群,增删改查信息。 需要预先创建访问权限的配置。 官网api文档 https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.9/ 下面罗列部分api curl -u admin:admin ...
为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又...
SpringBoot+Mybatis+CXF框架,实现Restful api与 WebService api接口的大实验
springboot入门demo...实现了restful api和webservice两种接口方式。(可通过postman或soupui进行测试。) 同时包含了Junit测试webservice。 Demo是经过亲测完全可以跑起来。通过此demo可对springboot有个入门的理解
Spring Boot 整合 Mybatis 实现RESTful API ,具体可以查看博客: http://blog.csdn.net/yaozhiqi1905658804/article/details/70820892
RESTful API设计规范
Spring boot restful api demo
RestfulApi服务端demo,需要RestfulApi客户端的到此处下载:https://download.csdn.net/download/qq_44020228/15491219
基于 Go 语言构建企业级的 RESTful API 服务.pdf
RESTFUL API设置最佳实 PDF
Python语言开发RESTful API指南,完整介绍了开发的方方面面。
RestfulApi客户端demo,亲测可用(需要配合服务端使用,数据在服务端定义),服务端demo:https://download.csdn.net/download/qq_44020228/15491258 ,用到JSON序列化第三方库(关注免费下载,注意需要.NET4.0以上)...
主要介绍了浅谈java调用Restful API接口的方式,具有一定借鉴价值,需要的朋友可以参考下。