一、概述
对于接口的测试,可以使用客户端版本的postman,也可以直接在chrome浏览器上安装postman插件。
客户端版本的postman功能比较强大,但是对于需要登录后才能测试的接口,在测试时需要单独设置
如sessionid这样的验证参数;对于插件版的postman,在测试时只需要访问网址后,就可以直接设置
请求参数,不需要在设置sessionid这样的参数。
请求体数据类型:
form-data:既可以上传键值对,也可以上传文件(multipart/form-data)。当上传的字段是文件时,会有Content-Type来说明文件类型;
content-disposition用来说明字段的一些信息;在springmvc中可以使用MultipartHttpServletRequest接收通过api根据"name"
获取不同的键值,也可以通过MulTipartFile数组接收多个文件;
x-www-form-urlencoded: 会将表单内的数据转换为键值对,比如,name=java&age = 23。后端采用@RequestParam来接收参数。
@RequestParam用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容,提交方式GET、POST,
@RequestParam可以处理get 方式中queryString的值,也可以处理post方式中 body data的值,@RequestParam 底层
是通过request.getParameter方式获得参数的。前端请求传Json对象则后端使用@RequestParam(后端不加则为默认此方式)。
raw: 可以上传任意格式的文本,可以上传text、json、xml、html等;
@RequestBody接受的是一个json对象的字符串,而不是Json对象,在请求时往往都是Json对象,用JSON.stringify(data)的方式就
能将对象变成json字符串。前端请求传Json对象的字符串则后端使用@RequestBody。
binary: 只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件(相当于Content-Type:application/octet-stream);
二、使用方法
我这里使用的是chrome插件的形式:
1. get
后端代码:
@GetMapping("get") public ResponseVO get(Integer id){ return ResponseVO.success(roleService.getById(id)); }
2. post
(1)@RequestParam:前端需要传json对象
当后端采用数组接收时,前端测试时可以分别设置多对key-value,eg:
ids:1 ids:2 ids:3
@PostMapping("delete") public ResponseVO delete(@RequestParam("ids") Integer[] ids){ roleService.delete(ids); return ResponseVO.success(); }
(2)@RequestBody:后端接收的json字符串
@PostMapping("edit") public ResponseVO edit(@RequestBody RolePo rolePo){ return ResponseVO.success(roleService.save(rolePo)); }
参考文档:
https://blog.csdn.net/feiyst/article/details/88431621