当先锋百科网

首页 1 2 3 4 5 6 7

前后段分离后、就需要对接口进行测试,各种参数以及对象的请求中,遇到了各种问题,小结一下

  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的值

 
















 

转载于:https://www.cnblogs.com/liweiweicode/p/10942769.html