@GetMapping、@PostMapping、@PutMapping、@DeleteMapping 的区别?
对于@GetMapping、@PostMapping、@PutMapping、@DeleteMapping,首先我们得谈到RESTFUL风格接口,常用的URL请求方式就包括了GET、POST、PUT、DELETE等:
Get、Post请求的区别:
1、get请求通常情况下用于获取数据,post请求通常情况下用于提交数据;
2、get请求有缓存,post请求没有缓存;
3、get请求通常是在url后面拼接参数,url的长度是有限制的。post请求通常将请求参数放在body中;
4、get请求查询效率好一点但是安全性不高,请求参数直接暴露在url,相比之下post请求的安全性较高;
5、get请求可以通过浏览器直接访问,post请求不行;
谈到@GetMapping、@PostMapping、@PutMapping、@DeleteMapping等注解,首先得讲到@RequestMaping:
@RequestMaping主要是将HTTP请求映射到控制器方法上,用于接收HTTP请求。@GetMapping其实写法就是@RequestMapping(method = RequestMethod.GET)
1、GET请求对应的@GetMapping:
通常情况下在于接收GET请求,GET请求主要是用来获取数据的,类似于数据库中的select,不进行数据的修改等只包含数据查询。@GetMapping具有幂等性。
2、POST请求对应的@PostMapping:
通常情况下在于接收POST请求,POST请求主要用来提交请求数据的,类似于数据库中的insert。通常用来提交表单数据,需要考虑接口幂等性问题。
3、PUT请求对应的@PutMapping:
通常情况下在于接收PUT请求,PUT请求也是向服务器发送数据,类似于数据库中的update操作。通常用来修改数据,@PutMapping本身就具有幂等性。
4、DELETE请求对应的@DeleteMapping:
通常情况下在于接收DELETE请求,DELETE请求主要用来删除数据,类似于数据库中的delete操作。@DeleteMapping也具有幂等性。
代码示例:
@PostMapping(value = "/add")
public void add(@RequestBody User user) {
userService.add(user);
}
@DeleteMapping(value = "/delete/{id}")
public void delete(@PathVariable String id) {
userService.delete(id);
}
@PutMapping(value = "/update")
public void update(@RequestBody User user) {
userService.update(user);
}
@GetMapping(value = "/get")
public User get(@RequestParam String name) {
return userService.getByName(name);
}
有的公司建议后端接口全都使用Post请求?是这样吗?https://www.cnblogs.com/great-r/p/17755864.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~