rest风格
rest风格
表现形式状态转换:访问网络资源的格式
区别
传统
http://localhost/user/getById?id=1
http://localhost/user/saveUser
rest风格:
http://localhost/user/1
http://localhost/user
优点
隐藏资源的访问行为,无法通过地址得知对资源是何种操作,简化书写
rest风格对资源的操作
描述模块的名称通常使用复数,表示此类资源而非单个资源
查询全部用户信息GET(查询)
http://localhost/users/1
查询指定用户信息GET(查询)
http://localhost/users
添加用户信息POST(新增保存)
http://localhost/users
修改用户信息PUT(修改更新)
http://localhost/users
删除用户信息DELETE(删除)
http://localhost/users/1
RESTful
根据REST风格对资源访问
案例
// Rest模式
@RestController
// 请求路径
@RequestMapping("/users")
public class BookController {
// 查询操作
@GetMapping
public String getById(){
System.out.println("springboot is running");
return "springboot is running";
}
}
设定请求动作
// Rest模式
@RestController
// 请求路径
@RequestMapping("/users")
public class BookController {
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String save(){
System.out.println("rest.POST");
return "rest.POST";
}
}
设定请求传参(路径变量)
@DeleteMapping("/{id}") // value="/users/{id}",method..
public String delete(@PathVariable Integer id){
System.out.println("rest.delete"+id);
return "rest.delete";
总结
@RequestBody、@PathVariable、@RequestParam
区别
@RequestParam用于接收ur1地址传参或表单传参
@RequestBody用于接收json数据
@PathVariable用于接收路径参数,使用参数名称描述路径参数
应用
后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较厂
如果发送非json格式数据,选用@RequestParam接收请求参数
采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值
简化
@RestController // Rest模式;包含@Controller和@ResponseBody
@RequestMapping("/users") // 请求路径
public class BookController {
@PostMapping //@RequestMapping(method = RequestMethod.POST)
public String save(){
System.out.println("rest.POST");
return "rest.POST";
}
@DeleteMapping("/{id}")
public String delete(@PathVariable Integer id){
System.out.println("rest.delete"+id);
return "rest.delete";
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人