REST(一)REST简述

版权声明:From Lay https://blog.csdn.net/Sadlay/article/details/84383080

REST(一)REST简述和Spring MVC整合

在Http协议发展的过程中,提出了很多的规则,但是这些规则有些繁琐,于是又提出了一种风格约定,它就是REST风格。实际上严格地说它并不是一种协议和标准,而是一种风格。

REST简述

REST(Representational State Transfer)可以翻译为表现层状态转换。首先需要又资源才能表现,所以第一个名词是资源。有了资源也要根据需要以合适的形式表现,这就是第二个名词表现层。最后是资源可以被新增、修改、删除等,这就是第三个名词状态转换。这就是REST风格的三个主要的名词。下面对其做进一步的阐述。

  • 资源:它可以是系统权限用户,角色和菜单等,也可以是一些媒体文件,如文本图片歌曲等等,总之就是一个具体存在的对象。可以用一个URI(Uniform Resouce Identifier,统一资源定位符)指向它,每个资源对应一个特定的URI,要获取这个资源,访问它的URI即可,而在REST中每一个资源哦都会对应一个独一无二的URI。在REST中,URI也可以被称为端点(End Point)。
  • 表现层:有了资源还需要确定如何表现这个资源。例如,一个用户可以使用Json,xml或者其他的形式表现出来,又如可能返回的是一幅图片。
  • 状态转换:现实中的资源并不是一成不变的,它是一个变化的过程,一个资源可以经历创建、访问、修改和删除的过程。对应HTTP协议,是一个没有状态的协议,这也意味着对于资源的状态变化就只能在服务器端保存和变化,不过HTTP中却存在多种动作来对应这些变化。

HTTP动作

  • GET:访问服务器资源(一个和多个资源)。
  • POST:提交服务器资源信息,用来创建新的资源。
  • PUT:修改服务器已经存在的资源,使用PUT时需要把资源所有属性一并提交
  • PATCH:修改服务器已经存在的资源,只需要将部分资源属性提交。
  • DELETE:从服务器将资源删除。

此外,还有两个并不常用的动作

  • HEAD:获取资源的元数据(content-type)
  • OPTIONS:提供资源可供客户端修改的属性信息。

下面列出几个REST风格的URI

# 获取用户信息,1是用户编号
GET /user/1
# 查询多个用户信息
GET /users/{userName}/{note}
# 创建用户
POST /user/{userName}/{sex}/{note}
# 修改用户全部属性
PUT /user/{id}/{userName}/{sex}/{note}
# 修改用户姓名
PATCH /user/{id}/{userName}

Spring MVC整合REST

Spring MVC 除了@RequestMapping外,还可以使用以下五个注解

  • @GetMapping:对应HTTP的GET请求,获取资源
  • @PostMapping:对应HTTP的POST请求,创建资源
  • @PutMapping:对应HTTP的PUT请求,提交所有资源属性修改资源
  • @PatchMapping:对应HTTP的PATCH请求,提交资源部分属性修改资源
  • @DeleteMapping:对应HTTP的DELETE请求,删除资源

github源码

猜你喜欢

转载自blog.csdn.net/Sadlay/article/details/84383080