【概念普及】很通俗的解释一下RESTful(表现层状态转移)架构风格
2017-08-16 11:47
344 查看
官方:REST(Representational State Transfer)指的是一种架构设计风格,而满足这种设计风格的应用程序或设计就被认为是RESTful的。这也是目前互联网中最流行的一种软件架构风格,它结构清晰、符合标准、易于理解,越来越多的应用服务开始使用RESTful这种架构风格,尤其是那些基于HTTP协议的网络服务。
这话要是有人能听懂就是天才,网上大部分资料还是原话转或融入有限的理解。我自己研究了一番,理解了发起者的意图,自己通俗的给大家解释一下。
目的: 规范一种风格,使系统可以长期存在,支撑持久系统。围绕2点恒定不变展开,一点是表现层恒定,也就是本质,图标就是图标,标题就是标题,多久都不会变的。另一点是定义状态变化,增删改查什么的,这个永久都不会变复杂,就那么多。
解释:定义一种接口设计风格,使接口描述为资源以及资源对应的状态切换,状态切换指增删改查或crud(创建、查询、更新、删除)。
举例说明:
我想定义2个接口,一个是获取信息,一个是删除信息,以下接口看起来是没有问题的,而且大家一般也是这么做的
/user/getinfo
/user/delinfo?id=
但是,这不是RESTful的,因为你定义了一个行为,将行为细节都交给接口实现的,每一个行为独占一个接口,如果业务有变更,你可能还要改,比如要求只能删除7天之前的。以下接口则是RESTfull的,接口仅描述了资源,具体操作由指定的动作来完成。
GET /user/info
DEL /user/info?id=
这样,服务端仅需要简单的维护资源,做状态切换却可。对于只能删除7天之前的这种事,则由上层逻辑去控制,底层安稳的一直存在下去,除非某一天,确实不用这个资源了。
用途:
RESTful风格,相当于将逻辑抽象出了一层客观存在的与事实对应的一层,加强了这一些的持久层,上层无论怎么变,这层可以不变。
价值:
非常适用于前后端分离场景
和HTTP关系:
RESTful不一定用http实现,但http确实非常适用于实现RESTful
其他说明:
接口不能有状态和依赖,否则破坏了RESTful性质,不然业务调整使依赖关系变更时,还得改接口。
这话要是有人能听懂就是天才,网上大部分资料还是原话转或融入有限的理解。我自己研究了一番,理解了发起者的意图,自己通俗的给大家解释一下。
目的: 规范一种风格,使系统可以长期存在,支撑持久系统。围绕2点恒定不变展开,一点是表现层恒定,也就是本质,图标就是图标,标题就是标题,多久都不会变的。另一点是定义状态变化,增删改查什么的,这个永久都不会变复杂,就那么多。
解释:定义一种接口设计风格,使接口描述为资源以及资源对应的状态切换,状态切换指增删改查或crud(创建、查询、更新、删除)。
举例说明:
我想定义2个接口,一个是获取信息,一个是删除信息,以下接口看起来是没有问题的,而且大家一般也是这么做的
/user/getinfo
/user/delinfo?id=
但是,这不是RESTful的,因为你定义了一个行为,将行为细节都交给接口实现的,每一个行为独占一个接口,如果业务有变更,你可能还要改,比如要求只能删除7天之前的。以下接口则是RESTfull的,接口仅描述了资源,具体操作由指定的动作来完成。
GET /user/info
DEL /user/info?id=
这样,服务端仅需要简单的维护资源,做状态切换却可。对于只能删除7天之前的这种事,则由上层逻辑去控制,底层安稳的一直存在下去,除非某一天,确实不用这个资源了。
用途:
RESTful风格,相当于将逻辑抽象出了一层客观存在的与事实对应的一层,加强了这一些的持久层,上层无论怎么变,这层可以不变。
价值:
非常适用于前后端分离场景
和HTTP关系:
RESTful不一定用http实现,但http确实非常适用于实现RESTful
其他说明:
接口不能有状态和依赖,否则破坏了RESTful性质,不然业务调整使依赖关系变更时,还得改接口。
相关文章推荐
- restful架构风格设计准则(一)以资源为中心、自描述的请求响应、资源状态迁移为粒度
- 基于SOA的REST(Representational Status Transfer - 表述性状态转移)架构风格
- REST构架风格介绍之一:状态表述转移(ZZ)
- 【Get深一度】小波分析概念1——紧支撑集是什么意思,通俗解释
- Spring的IOC原理[通俗解释一下]
- 【SSH进阶之路】Spring的IOC逐层深入——Spring的IOC原理[通俗解释一下](三)
- Spring RESTful软件架构风格—优化网址
- restful架构风格设计准则(六)版本管理
- 闲谈关于大数据的概念和基本技术的通俗的解释
- Spring的IOC原理[通俗解释一下
- 【Get深一度】小波分析概念2——消失矩阶数是什么意思,通俗解释
- Spring的IOC原理[通俗解释一下]
- Spring的IOC原理[通俗解释一下]
- 用通俗的语言解释 Spring 中的 DI 、IOC 和AOP概念
- Spring的IOC原理[通俗解释一下]
- 给外行或者刚入门普及一下关于C#,.NET Framework(.NET框架),.Net,CLR,ASP,ASP.Net, VS,以及.NET Core的概念
- 怎样用通俗的语言解释什么叫 REST,以及什么是 RESTful?
- 【Get深一度】小波分析概念3——正则性是什么意思,通俗解释
- Spring boot 整合SSM框架三层架构并前后台restful风格交互
- Spring的IOC原理[通俗解释一下]