@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

posted @   Great-R  阅读(2424)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示