本篇主要介绍Spring Boot统一功能处理中的统一数据返回格式。
目录
一、定义统一的返回类
在我们的接口在处理请求时,返回的结果可以说是参差不齐,既可以是一个String类型的数据,又可以是一个Integer类型的数据,这样未免会显得我们的代码很不规范,并且这种不规范的代码还会增加前后端之间的交流成本。因此,我们可以设计一个统一的类来作为所有接口的返回结果。这个统一的类通常需要包含以下三个部分:
- code:由我们自己定义的一个状态码
- msg:响应结果的描述
- data:响应的数据
下面我们通过代码来具体来实现一下这个类 :
这里可以使用泛型来作为data的参数,毕竟返回的数据类型是多种多样的。
下面我们来改造一下上一篇中所定义的login方法:
这里的状态码200代表请求成功,-1代表失败。
仔细观察可以发现,这串代码其实是有点冗余的,每次返回数据时都得设置一次Result的三个属性。因此,我们还可以对Result进行一些优化,具体如下:
这里我们将设置Result属性的代码进行了封装,因此接口在返回数据时,直接调用这里的方法即可(由于fail表示请求失败,请求失败了通常不会有返回的数据,因此fail没有设置data参数)。接下来我们再优化一下前面的login方法:
这样代码就看着简洁多了。
二、配置统一数据格式
虽然我们这里已经定义了统一的数据返回类Result,但我们并不能保证所有接口都会以这个类作为返回结果,因此我们还需要借助Spring 来配置一下统一的数据返回格式。
首先我们需要创建一个类来实现ResposeBodyAdvice:
然后重写两个方法: