本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一 REST风格介绍
概念
REST : Representational State Transfer (表现形式状态转换)
REST风格: 就是访问网络资源的格式
restful: 根据rest风格对资源进行访问叫做restful
restful开发: 就是你要用rest风格进行开发
REST风格优点
- 隐藏了访问行为
- 书写简化
1 传统风格和REST风格比较
传统风格
访问资源时,比如查询,路径会显示getById,保存,路径会显示saveUser
根据访问路径一眼就可以看出访问行为。
REST风格
通过路径 + 访问方式 才可知道 访问行为
但如上的访问方式和路径不是必须的约束,是可以打破的(但99%都按照rest风格写了)
注意:路径里模块的名称通常使用复数
2 REST风格增删改查路径的表示
二 案例
操作 访问方式 访问路径
增 POST http://localhost:8080/users
删 DELETE http://localhost:8080/users/1
改 PUT http://localhost:8080/users
查一 GET http://localhost:8080/users/1
查所有 GET http://localhost:8080/users
要点:
1 设定http请求动作(访问方式):@PostMapping、@DeleteMapping、@PutMapping、@GetMapping
2 设定请求参数(访问路径):形参上加@PathVariable注解,路径上要有参数的占位
备注:
@RestController = @Controller + @ResponseBody
@PostMapping = @RequestMapping(method = RequestMethod.POST)
代码
package com.qing.controller;
import com.qing.domain.User;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/users")
public class UserController {
//增 POST http://localhost:8080/users
@PostMapping
public String save(User user) {
System.out.println("save success"+user);
return "save success";
}
//删 DELETE http://localhost:8080/users/1
//@PathVariable : 用于绑定url的占位符,restful风格
@DeleteMapping("/{id}")
public String detete(@PathVariable Integer id) {
System.out.println("detete " + id + " success");
return "detete " + id + " success";
}
//改 PUT http://localhost:8080/users
@PutMapping
public String update(User user) {
System.out.println("update success");
return "update success";
}
//查一 GET http://localhost:8080/users/1
@GetMapping("/{id}")
public String selectById(@PathVariable Integer id) {
System.out.println("selectById " + id + " success");
return "selectById " + id + " success";
}
//查所有 GET http://localhost:8080/users
@GetMapping
public String selectAll() {
System.out.println("selectAll success");
return "selectAll success";
}
}
测试结果