背景:后端工程师想要进行HTML测试 如果没有前端网页可以利用接口进行测试 常用的接口测试工具包括Apifox(免费),postman(免费版能用功能很少)
首先在IDEA创建出一个Springboot工程,在main文件夹中创建一个requestControl类用来管理测试请求参数接收,该类需要用@RestController来注释
@RestController
public class requestController{
/*
正文部分
*/
}
请求参数有很多类型 包括但不限于普通字符串类型,数组类型,列表类型,日期类型,路径类型
本文一一列举供初学者学习以及参考
所有request发送之前 所声明的类都需要用@RequestMapping("/path")来指明寻找的路径
普通数据类型
<java代码>
@RequestMapping("/simpleParam") public String simpleParam(String name,Integer age){ System.out.println(name+":"+age); return "success"; }
其中定义了一个GET请求 地址为请求的地址 并把这个请求命名为快速入门
传递两个参数 name和age与Java类中的形参相同 java中System.out.println的值是成功给服务器发送之后服务器的工作台输出的语句 return的值是返回给APIfox的值 指示返回完成
数组类型
@RequestMapping("/arrayParam") public String arrayParam(String[] hobby) { System.out.println(Arrays.toString(hobby)); return "ok"; }
使用数组的toString方法打印出
简单实体类型
requestController中的方法
@RequestMapping("/simplePojo") public String simplePojo(User user){ System.out.println(user); return "OK" ; }
User类
package com.example.pojo; public class User { private String name; private Integer age; private Address address ; @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + ", address=" + address + '}'; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public void setName(String name) { this.name = name; } public void setAge(Integer age) { this.age = age; } public String getName() { return name; } public Integer getAge() { return age; } }
User类中有name和age 和Address与APIfox中的参数相同
对user类进行封装
APIfox代码
列表类型
java代码
@RequestMapping("/listParam") public String listParam(@RequestParam List<String> hobby) { System.out.println(hobby); return "ok"; }
List参数需要@RequestParam进行注释
当集合用于路径参数 不能注释为RequestParam
JSON类型
java代码
@RequestMapping("/jsonParam") public String jsonParam(@RequestBody User user) { System.out.println(user); return "ok"; }
JSON格式传给后端需要使用对象类型来接数据
User类型需要@RequestBody进行注释
User类同上
APIfox需要发送post请求 在body发送json格式的数据
日期类型
java代码
@RequestMapping("/DateParam") public String DateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime UpdateTime) { System.out.println(UpdateTime); return "ok"; }
LocalDateTime内置类需要@DateTimeFormat来注释 来表明时间日期格式其中pattern参数表明了日期数据格式
APIfox
path类型
java代码
@RequestMapping("/path/{id}") public String pathParm(@PathVariable Integer id){ System.out.println(id); return "ok"; }
注释中{}表明的是可变参数 目的是改变路径
方法体形参中与{}保持一致 且形参需要@PathVariable来注释
APIfox
还希望各位大佬指正