在与gpt“深度”交流后,自己对上述问题有了个初步认知:
1. 在有注解的存在下,参数必须有值,为空会报错
2. @RequestBody是一个比较全面的注解,在将请求头content-Type设置为application/JSON之后才可用(该设置同样可以使用@RequestParam注解,因此放心大胆去设置吧!)
3. 当通过参数修改数据库时,我们往往需要用户传来的信息,但是显然,该信息不可能包含id,因此QueryString风格的@RequestParam并不能交出一份完美的答卷。而@RequestBody注解原理则是通过响应体映射,在前端向响应体中加入了id后便可以一起传给后端。综上,对于需要输入的请求,我一般会选择@RequestBody注解。
4. QueryString的@RequestParam注解在很多时候可以省略,因此在我们有需要“传参为空以达成某些目的的时候”,不带注解是最优解。