总结:
1)后端是post请求和put请求,并且前端JS传来的参数是JSON格式的对象时,必须使用@RequestBody注解接收参数;后端是否使用@RequestBody注解,直接决定postman测试方法是否相同;
2) post请求和put请求中,当使用@RequestBody注解时,URL不用参数(Params)拼接的,否则会报错"Required request body is missing"[见最后一张图],要选择Body→raw→JSON,然后采用如下面的传参方法;
3) get请求,delete请求则都是选择Params的方式,参数拼接在URL地址栏中即可;put请求,post请求只要前端传来的不是JSON格式的对象时,应该也是选择Params的方式吧(例如下面put请求的更新状态)?
4) 当controller中采用restful风格时,URL传参方式要与之对应,如http://localhost:8091/user/status/6/1 (6代表id,1代表状态修改).
一.post请求
1.新增用户
2. 用户登录
idea控制台对应生成的SQL语句:
二. get请求(分页查询用户列表)
三. delete请求(删除用户)
四.put请求(更新)
1.更新状态(主要学习restful风格的传参)
如何不按照restful风格传参就会报错哦:
2.更新用户(根据id更新,可以更新username/email/password/status等字段)
注意:由于没有写@RequestBody注解,所以虽然用postman测试没问题,但是JS中发Ajax请求后导致后端控制台生成的sql语句是这样的(updated为MP的自动填充功能字段):
很显然,缺少了需要更新的字段,故controller中是@PutMapping注解并且前端传过来的是JSON字符串格式的对象时(见下图),参数前面务必加上@RequestBody注解,这样才能生成正常的sql:
说明:上面1中的"更新状态",同样是put请求,但是由于前端传来的参数不是JSON格式,所以没有必要用@RequestBody注解。
以下是不加@RequestBody注解时,用postman的测试(极不推荐,因为HTML时是必须加该注解的):
加了@RequestBody注解时,测试便和上面post请求一样了,如下:(推荐)