🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaweb
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
REST
- 一、REST简介
- 1.1REST风格简介
- 二、RESTful入门案例
- 2.1设定http请求动作(动词)
- 2.2设定请求参数(路径变量)
- 三、RESTful快速开发
- 3.1RestController注解
- 3.2方法注解
- 总结
一、REST简介
- REST(Representational State Transfer),表现形式状态转换
-
- 传统风格资源描述形式
-
http://localhost/user/getById?id=1
-
http://localhost/user/saveUser
-
- REST风格描述形式
-
http://localhost/user/1
-
http://localhost/user
- 优点:
- 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
- 书写简化
1.1REST风格简介
- 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
-
http://localhost/users
查询全部用户信息 - - GET(查询)
-
http://localhost/users/1
查询指定用户信息 - - GET(查询)
-
http://localhost/users
添加用户信息 - - POST(新增/保存)
-
http://localhost/users
修改用户信息 - - PUT(修改/更新)
-
http://localhost/users/1
删除用户信息 - - DELETE(删除)
-
- 上述行为是约定方式,约定不是规范,可以打破,所以称 REST风格,而不是REST规范
- 描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源。
- 根据REST风格对资源进行访问叫做RESTful。
二、RESTful入门案例
2.1设定http请求动作(动词)
@RequestMapping(value = "/users", method = RequestMethod.GET)
@ResponseBody
public String save() {
System.out.println("use save...");
return "'module':'user save'";
}
//修改
@RequestMapping(value = "/users", method = RequestMethod.PUT)
@ResponseBody
public String update(@RequestBody User user) {
System.out.println("use update..." + user);
return "'module':'user update'";
}
2.2设定请求参数(路径变量)
//带参数
@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable int id) {
System.out.println("use delete..." + id);
return "'module':'user delete'";
}
- 名称:
@RequestMapping
- 类型:方法注解
- 位置:SpringMVC控制器方法定义上方
- 作用:设置当前控制器方法请求访问路径
- 范例:
@RequestMapping(value = "/users", method = RequestMethod.GET)
@ResponseBody
public String save() {
System.out.println("use save...");
return "'module':'user save'";
}
- 属性:
-
- value(默认):请求访问路径
-
- method:http请求动作,标准动作(GET/POST/PUT/DELETE)
-
- 名称:
@PathVariable
- 类型:形参注解
- 位置:SpringMVC控制器方法形参前面
- 作用:绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名相同
- 范例:
@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
@ResponseBody
public String delete(@PathVariable int id) {
System.out.println("use delete..." + id);
return "'module':'user delete'";
}
- 区别:
-
@RequestParam
用于接收url地址传参或表单传参
-
@ResponseBody
用于接收json数据
-
@PathVariable
用于接收路径参数,使用(参数名称)描述路径参数
-
- 应用:
-
- 后期开发中,发送请求参数超过1个小时,以json格式为主,
@ResponseBody
应用较广
- 后期开发中,发送请求参数超过1个小时,以json格式为主,
-
- 如果发送非json格式数据,选用
@RequestParam
接收请求参数
- 如果发送非json格式数据,选用
-
- 采用RESTful进行开发,当参数数量较少时,例如一个,可以采用
@PathVariable
接收请求路径变量,通常用于传递id值
- 采用RESTful进行开发,当参数数量较少时,例如一个,可以采用
-
三、RESTful快速开发
3.1RestController注解
- 名称:
@RestController
- 类型:类注解
- 位置:基于SpringMVC的RESTful开发控制器类定义上方
- 作用:设置当前控制器为RESTful风格,等同于
@Controller
和@ResponseBody
两个注解组合功能 - 范例:
@RestController
@RequestMapping("/address")
public class BookController {
}
3.2方法注解
- 名称:
@GetMapping
、@PostMapping
、@DeleteMapping
、@PutMapping
- 类型:方法注解
- 位置:基于SpringMVC的RESTful开发控制器方法定义上方
- 作用:设置当前控制器方法请求路径与请求动作,每种对应一个请求动作,例如
@GetMapping
对应GET请求 - 范例:
@RestController
@RequestMapping("/address")
public class BookController {
@GetMapping
public String save() {
System.out.println("use save...");
return "'module':'user save'";
}
@DeleteMapping
public String delete() {
System.out.println("use delete...");
return "'module':'user delete'";
}
//修改
@PutMapping
public String update(@RequestBody Address address) {
System.out.println("use update..." + address);
return "'module':'user update'";
}
@GetMapping("{id}")
public String getById(@PathVariable int id){
System.out.println("address getById..." + id);
return "'module':'address getById'";
}
}
- value:默认访问路径
总结
通过这篇文章,基于SpringMVC的RESTful快速开发就介绍到这里了,欢迎各位小伙伴点赞+关注!!!