聊架构:5分钟了解REST架构

聊架构:5分钟了解REST架构

REST 指的是一组架构约束条件和原则。是一种架构方式,它描述了一个架构样式, 这个原则诞生于2000年,是Roy Fielding 的博士论文第一次提出的,这哥们牛闪闪的,是 HTTP(1.0/1.1) 规范的主要编写者之一,也是Apache服务器软件的作者之一,Apache基金会的第一任主席。

而RESTful是指按照REST规定的规则应用程序或者设计风格。

REST的规则概括起来有以下五个方面:

一、以资源为核心

什么是资源?在web应用中,什么都是资源(或者抽象成资源)。资源可以是一个实体,也可以是一个过程,或者也可以是一个版本。比如,商品是资源,库存是资源,价格是资源等等。

REST没有“服务”概念,那是SOA的事情。

二、每个资源分配唯一一个URL

每一个资源一个URL,而且是唯一的URL,比如我们使用http://www.haodaquan.com/v0/product 这个URL标识商品资源。

三、通过标准的HTTP(HTTPS)方法操作资源。

操作(调用)资源使用HTTP中的标准方法,比如常见的GET(获取资源),POST(存储资源),PUT(重置资源),PATCH(局部更新资源)、DELET(删除资源),也可能会有HEADER和OPTIONS方法。

四、资源的表现层可以是xml、json或者其他

这里是指调用资源后返回的数据格式,一般以JSON和XML居多,特别json格式可以直接被js使用,爽的很,经常被使用。

五、操作是无状态的

REST架构是不存储调用者的状态的。换句话说,比如登陆才能调用资源,你可别指望登陆这个状态让REST服务帮你存储。换句话说,业务层的活,REST不干。

聊架构:5分钟了解REST架构

遵守REST规则,可以让架构变得轻便,简单,安全性和可靠性高,更重要的是扩展性好。当然,利用应用程序的多层架构可是实现更高的重用性、安全性和扩展性。

还有,REST架构方式不”挑食“,好多语言都可以实现。 Java、Perl、Ruby、Python、PHP、GO等等都是他的菜。

当然,REST只是一个规范,不是法律,没有强制性,实际项目中,只能靠组织规定、领导力量和程序员的自觉了。

聊架构:5分钟了解REST架构