文章目录
- 关于MultipartFile文件与传递JsonBody并存问题
- 解决数据流与参数同时传递的问题
关于MultipartFile文件与传递JsonBody并存问题
基于spring框架,如果是上传文件,接口采用MultipartFile接收数据流,如果是body,接口采用@RequestBody,这些都比较熟悉的。但是如果遇到既要又要的场景,能不能同时传递?
首先想到的方法就是尝试,写一个具有两个特点入参的测试接口,然后测试。结果发现在postman编辑的时候已经不支持了,MultipartFile和jsonBody同属于body,二者互斥,只能选择其其一,所以MultipartFile文件与传递JsonBody并存问题就不是问题,压根就不能共存。
解决数据流与参数同时传递的问题
方法一:采用restful风格
estful属于参数在url上占位的优雅方式,但是这个方式不适合大数据,否则这个url将会变得很长,很难读懂。
方法二:formdata多参数传递
在postman上也是能发现formdata是支持多数据流的,支持file格式和text格式,但是需要注意这里不是直接传递json字符串,而是文件流。所以前端在处理的时候就会很麻烦,需要将请求数据封装,然后上传文件,再进行请求,非常麻烦,如果需要使用,就得跟前端的同学促膝长谈,想办法说服你的小伙伴。
方法三:将json数据封装到RequestParam
RequestParam方式属于在url后面拼接参数,所以也是有一定的上限,所以拼接数据大小尽量不能大于4kb,建议也是少量参数使用。
如果参数太多,上面几个方式都不能满足开发需求呢?
这个时候可以考虑参数传递是否合理性,是否需要换成传递主键ID,从而实现尽量少传递参数。