REST风格开发
Rest简介
REST (Representional State Transfer) 表现形式状态转换(资源描述风格)
-
传统风格资源描述形式
-
REST风格描述形式
但是REST风格描述不太清楚,可能会有歧义,故有:
路径 + 请求方式 =资源的访问行为
请求方式springmvc支持8种,常用的为上述4种
注:上述行为是约定方式,约定不是规格,可以打破(建议)
描述模块的名称通常使用复数,表示此类资源,而不是单个资源
根据REST风格对资源访问称为RESTful
RESTful入门案例
假设表现层UserController中有一个保存user和根据id删除user的方法
@RequestMapping("/save")
@Responsebody
public String save(@RequestBody User user){
System.out.println("user save..." + user);
return "{'module';'user save'}"
}
@RequestMapping("/delete")
@Responsebody
public String delete(Integer id){
System.out.println("user delete..." + id);
return "{'module';'user delete'}"
}
REST风格书写
@RequestMapping(value = "/users",method = RequestMethod.POST)
@Responsebody
public String save(@RequestBody User user){
System.out.println("user save...");
return "{'module';'user save'}"
}
@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
@Responsebody
public String delete(@PathVariable Integer id){
System.out.println("user delete..." + id);
return "{'module';'user delete'}"
}
上述案例主要有两部分:
- 设定http动作,常用四种GET,PUT,POST.DELETE
- 设定请求参数
- 路径上面加入
- 方法参数里面加入@PathVariable注解,表示参数从路径上获取,名称需对应
- @RequestBody 请求体参数 用于接收json
- @RequestParam 接收url地址传参和表单传参
- @PathVariable 用于接收路径参数
REST快速开发
@Controller
public class UserController(){
@RequestMapping(value = "/users",method = RequestMethod.POST)
@Responsebody
public String save(@RequestBody User user){
System.out.println("user save..." + user);
return "{'module';'user save'}"
}
@RequestMapping(value = "/users",method = RequestMethod.PUT)
@Responsebody
public String update(@RequestBody User user){
System.out.println("user update..."+ user);
return "{'module';'user update'}"
}
}
我们发现
@RequestMapping(value = "/users",method = RequestMethod.POST)
@Responsebody
两个方法都使用了非常相似的注解,只有Http的方法不同
所以我们可以对其进行简化:
@RestController
@RequestMapping("/users")
public class UserController(){
@RequestMapping(method = RequestMethod.POST)
public String save(@RequestBody User user){
System.out.println("user save..." + user);
return "{'module';'user save'}"
}
@RequestMapping(method = RequestMethod.PUT)
public String update(@RequestBody User user){
System.out.println("user update..."+ user);
return "{'module';'user update'}"
}
}
总结一下,REST风格就是一种资源描述风格,这种风格的主要围绕着资源展开,包括对资源的操作。其中操作在spring中有8种,我们常用的有4种。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律