聊架构: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不干。
遵守REST规则,可以让架构变得轻便,简单,安全性和可靠性高,更重要的是扩展性好。当然,利用应用程序的多层架构可是实现更高的重用性、安全性和扩展性。
还有,REST架构方式不”挑食“,好多语言都可以实现。 Java、Perl、Ruby、Python、PHP、GO等等都是他的菜。
当然,REST只是一个规范,不是法律,没有强制性,实际项目中,只能靠组织规定、领导力量和程序员的自觉了。