在写SpringBoot项目中如何区分是使用@PostMapping还是@PutMapping
如果产生了不相同的效果,那就说明这个服务不是idempotent的,因为多次使用产生了副作用了嘛;如果是这种情况,每次返回结果不一样的时候,应该使用POST方法,如果后一个请求把第一个请求覆盖掉了,那这个服务就是idempotent的。如果执行修改操作,后面的修改请求会把前面的请求给覆盖掉,所以使用@PutMapping。如果执行添加操作,后面的添加请求不会覆盖前面的请求,所以使用@Postmap
·
@PostMapping和@PutMapping作用等同,都是用来向服务器提交信息。
如果是对数据库进行添加信息的操作,倾向于用@PostMapping,
如果是对mysql数据库的数据表的数据进行更新信息,倾向于用@PutMapping。两者差别不是很明显。
HTTP协议中PUT和POST使用区别
在HTTP中,PUT被定义为idempotent的方法,POST则不是,这是一个很重要的区别。
如我们发送两个请求,服务器端是什么样的行为?
如果产生了不相同的效果,那就说明这个服务不是idempotent的,因为多次使用产生了副作用了嘛;如果是这种情况,每次返回结果不一样的时候,应该使用POST方法,
如果后一个请求把第一个请求覆盖掉了,那这个服务就是idempotent的。如果是这种情况,应该使用PUT方法。
常见的有:
如果执行添加操作, 后面的添加请求不会覆盖前面的请求, 所以使用@Postmapping
如果执行修改操作, 后面的修改请求会把前面的请求给覆盖掉, 所以使用@PutMapping
更多推荐
已为社区贡献4条内容
所有评论(0)