目录
请求响应:
请求:获取请求数据
响应:设置响应数据
BS架构:浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器。
CS架构:客户端/服务器架构模式。(需要下载响应的客户端即软件)
CS(开发、维护麻烦 体验感强) BS(维护方便 体验一般)
请求:
Postman:
由于前后端分离开发,只写后端代码时POST请求无法对接口进行测试,所以需要安装Postman进行测试
Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。
作用:常用于接口测试
官网:Postman: The World's Leading API Platform | Sign Up for Free
简单参数:
在服务端传递的普通数据,如GET请求路径后携带的两个参数
原始方式:
在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。(需要手动进行类型转化,比较繁琐,一般不用该方法)
SpringBoot方式:
简单参数:参数名与形参变量名相同,定义形参即可接收参数。
在postman中测试结果为:
而通过POST请求来完成则需要设置请求体:
只需要请求参数名,和方法中的形参一致即可正常运行(如果不一致能接收成功,但是响应不一致的接收结构为null)
如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射。
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam (name="name") String username , Integer age) {
System.out.println(username+":"+age);
return "OK";
}
实体参数:
简单实体对象:请求参数与形参对象属性名相同,定义POJO接收即可(保证请求的参数名与实体类的属性名保持一致)
在Controller同级目录下创建包用来专门存放实体对象
再在写入接口传递Uer对象
@RequestMapping("/simplePojo")
public String simplePojo(User user) {
System.out.println(user);
return "OK";
}
复杂实体的封装:(如果实体对象中又含有实体对象)
只需要通过某个实体中定义的另一个实体.某个属性来传递即可
数组集合参数:
数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
如图,逐个传递即可
服务器接收方式:
方式一:定义一个数组来接收
@RequestMapping("/arrayParam")
public String arrayParam(String [] hobby) {
System.out.println(Arrays.toString(hobby));
return "OK";
}
方式二:使用集合来完成参数的接收 封装
集合参数:请求参数名称与形参集合名称相同且请求参数为多个,@RequestParam 绑定参数关系
与数组的传递方式相同
服务端接收:
@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby) {
System.out.println(hobby);
return "OK";
}
日期参数:
使用@DateTimeFormat注解完成日期参数格式转换
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
Json参数:
JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user) {
System.out.println(user);
return "OK";
}
路径参数:
通过请求URL直接传递参数,使用{...}来标识该路径参数,需要使用@PathVariable获取路径参数
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable Integer id) {
System.out.println(id);
return "OK";
}
}
如果需要传递多个路径参数:
注意:注解中参数名和形参名称需要保持一致
响应:
因为响应的格式很随意,所以我们在开发中为了规范项目会设置统一的响应结果
在pojo包中创建返回类即可
Springboot项目的静态资源(html、css、js等前端资源)默认存放目录为:classpath:/static
classpath:/public、classpath:/resources