REST 全称是 Representational State Transfer
REST 将资源的状态以最适合客户端或服务端的形式从服务端的形式从服务器端转移到客户端(或者反过来)。
在 REST 中资源通过 URL 进行识别和定位
Spring 支持的创建 REST 资源:
- 控制器可以处理所有的 HTTP 方法(POST、GET、PUT、DELETE、PATCH)
- 借助 @PathVariable 注解,控制器处理参数化 URL。
- 借助 Spring 的视图和视图解析器,资源能以多种方式表述,包括将模型数据渲染为 XML、JSON、Atom 及 RSS 的 View 实现。
- 可以使用 ContentNegotiatingViewResolver 来选择最适合客户端的表述。
- 借助 @ResponseBody 注解和各种 HttpMethodConverter 实现,能够替换基于视图的渲染方式。
- @RequestBody 注解以及 HttpMethodConverter 实现可以将传入的 HTTP 数据转化为传入控制器处理方法的 Java 对象。
- 借助 RestTemplate,Spring 应用能够方便地使用 REST 资源。
REST用法:
http://127.0.0.1/user/query/1 GET 根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息
RESTful用法:
http://127.0.0.1/user/1 GET 根据用户id查询用户数据
http://127.0.0.1/user POST 新增用户
http://127.0.0.1/user PUT 修改用户信息
http://127.0.0.1/user DELETE 删除用户信息
SpringMVC实现restful服务:
SpringMVC原生态的支持了REST风格的架构设计所涉及到的注解:
- @RequestMapping
- @ResponseBody
- @PathVariable
是 SpringMVC 向 REST 目标挺进发展过程中出现的,且具有里程碑的意义。
通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
主要是根据请求方法进行类的区别。