同学们好!我们在上节课中曾经提及,Web服务器需要为每个HTTP方法和资源路径组合,提供对应的处理函数,这个过程被称为路由匹配。由HTTP方法和资源路径所表示的接口,可以理解为是后端开发者和前端开发者共同遵守的协议。既然是协议,就必然要遵循某种规则。RESTful就是这种类型的规则之一。
在这节课,我们首先要搞清楚究竟什么是REST?什么又是RESTful?在此基础上,我们就比较容易理解四种HTTP方法在RESTful中的具体含义。
那么究竟什么是REST?什么又是RESTful呢?
REST是Representational State Transfer的缩写,直译为表述性状态转移。它其实是一种代码设计风格,表示通过HTTP协议中的四种请求方法,操作某个资源。被操作的资源以URI加以标识,通常为名字,表示操作动作的HTTP方法都是动词,由此构成一个动宾词组,表示访问行为本身。比如用户登录,其本质是从数据库中获取用户信息,可以用GET方法和/user这样的URI组合表示。再比如用户注册,其本质是在数据库中添加用户信息,可以用POST方法和/user这样的URI组合表示。任何遵循REST风格的设计都可以被称为RESTful。
HTTP协议中的请求方法只有四个,而世界上的动词成千上万,即使局限在互联网应用的范围之内,也不可能只有四种操作。可见每种请求方法在REST中的含义,并不完全取决于它们的字面义本身,而是要借助某种语义层面的抽象,各自代表一大类访问行为。
GET方法代表所有获取类型的访问行为,对应数据库的查询操作。POST方法代表所有添加类型的访问行为,对应数据库的插入操作。PUT方法代表所有修改类型的访问行为,对应数据库的更新操作。DELETE方法代表所有删除类型的访问行为,对应数据库的删除操作。总之,RESTful只是一种接口设计风格,并非强制性的设计规范。但随着互联网行业的迅猛发展,它已渐渐成为一种约定俗成的事实标准。Gin框架的路由匹配方法,也是基于RESTful风格设计的。
谢谢大家,我们下节课再见!