作者:微信小助手
发布时间:2021-07-27T15:21:12
今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常。
首先我们来看看为什么要返回统一的标准格式?
在默认情况下,SpringBoot的返回格式常见的有三种:
第一种:返回 String
@GetMapping("/hello")
public String getStr(){
return "hello,javadaily";
}
此时调用接口获取到的返回值是这样:
hello,javadaily
第二种:返回自定义对象
@GetMapping("/aniaml")
public Aniaml getAniaml(){
Aniaml aniaml = new Aniaml(1,"pig");
return aniaml;
}
此时调用接口获取到的返回值是这样:
{
"id": 1,
"name": "pig"
}
第三种:接口异常
@GetMapping("/error")
public int error(){
int i = 9/0;
return i;
}
此时调用接口获取到的返回值是这样:
{
"timestamp": "2021-07-08T08:05:15.423+00:00",
"status": 500,
"error": "Internal Server Error",
"path": "/wrong"
}
基于以上种种情况,如果你和前端开发人员联调接口她们就会很懵逼,由于我们没有给他一个统一的格式,前端人员不知道如何处理返回值。
还有甚者,有的同学比如小张喜欢对结果进行封装,他使用了Result对象,小王也喜欢对结果进行包装,但是他却使用的是Response对象,当出现这种情况时我相信前端人员一定会抓狂的。
所以我们项目中是需要定义一个统一的标准返回格式的。
一个标准的返回格式至少包含3部分: