【SpringBootWeb入门-7】请求响应-响应

发布时间 2023-12-08 00:00:35作者: hiker0412

前面的章节我们介绍到,在web应用程序中,我们需要重点关注Controller程序,Controller程序的职责就是接收请求,响应返回结果数据。请求参数的接收我们前面已经讲解完了,接下来我们来讲解设置响应数据的返回。

在我们之间介绍的入门程序当中,浏览器地址栏发起 http://localhost:8080/hello 的请求,会请求到Controller当中的hello方法,这个方法返回 hello world 字符串,这些方法返回均依赖一个注解:@ResponseBody。

 @ResponseBody注解的介绍如下:

  • 类型:方法注解、类注解
  • 位置:可以作用在Controller的方法上或者类上
  • 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为JSON格式响应
  • 说明:@RestController = @Controller + @ResponseBody ,前面Controller的注解@RestController其实含有 @Controller 以及 @ResponseBody。

接下来我们新建一个ResponseController,用来测试响应数据返回。

ResponseController定义了3个方法,分别返回字符串、对象、集合,同时我们在Postman里面也定义了三个接口测试。

首先是第一个返回字符串的方法,在Postman中点击发起请求,返回结果如下:

成功返回了 hello hiker 字符串。

第二个函数是返回对象,在Postman中点击发起请求,返回结果如下:

成功返回了对象:{ "province": "广东", "city": "深圳"}。

第三个函数是返回集合,在Postman中点击发起请求,返回结果如下:

成功返回了集合:[{"province": "广东","city": "深圳"},{"province": "陕西","city": "西安"}]。

到这里我们成功的测试了三种接口返回结果数据,但是返回的数据类型各种各样,在实际的项目开发中,随意的返回不同类型的数据,会给前端开发人员造成困扰,增加前后端联调的沟通成本,这里我们要改造成输出统一的响应结果。

我们把上面提到的Result统一响应结果类新建到项目,然后再对上面用到的三个测试方法进行改造。

改造后的代码如下:

 在Postman中点击发起请求,三个方法的返回结果分别如下:

总结

到这里我们已经讲解了web响应的使用方法,下面我们总结如下:

1、@ResponseBody

  • 位置:Controller类上/方法上
  • 作用:将方法返回值直接响应,若返回值类型是 实体对象/集合 ,转JSON格式响应

 2、统一响应结果

  • Result(code、msg、data)

 下一节我们讲解三层架构。