前后段分离后、就需要对接口进行测试,各种参数以及对象的请求中,遇到了各种问题,小结一下
a、list参数,form形式是无法传参的
b、主要测试参数
1、测试实体类
/** * @author Levi * @date 2019/9/18 9:31 */ @Data @AllArgsConstructor @NoArgsConstructor @Builder
public class Animal {
private String name;
private Integer type;
private String num;
private Long id;
private Date birthDate;
List<Animal> animalList;
private Animal animal2;
}
测试Controller
@PostMapping("/animals") //简略版本测试 public AjaxResponse saveArticle(@RequestBody Animal animal) { log.info("saveArticle:{}",animal); return AjaxResponse.success(animal); } @PostMapping("/animals2") public AjaxResponse saveArticle2(@ModelAttribute Animal animal) { log.info("saveArticle:{}",animal); return AjaxResponse.success(animal); }
@RequestBody用于接收json字符串的属性,里面可以包含对象:
后台可以成功返回结果并打印:注意提交的类型为raw json
2、使用@ModelAttribute在后台接收队形,postMan利用form提交数据
另外一种情况,既有单个参数,又有对象,修改第二个接口:
@PostMapping("/animals2")
public AjaxResponse saveArticle2(@ModelAttribute Animal animal,
@RequestParam (value = "id", required = true) Long id) {
log.info("saveArticle:{}",animal);
return AjaxResponse.success(animal);
}
这样请求,后台只能接收到前面一个id
两个id均可获得值
当对象中还有对象,需要用“对象.属性”进行传值
请求参数如上
得到了animal2的值