后端返回数据规范
问题发现
在写tgDrive的早期阶段,我想着一个小项目,应该不会有特别多的数据交互,我为了图方便,索性直接用Spring框架自带的ResponseEntity
来响应,但是当项目进行下去后,我发现直接用ResponseEntity
响应的话,前端的处理十分麻烦。
问题分析
在ResponseEntity
构建的响应中,响应体的内容就只有数据,例如返回的JSON:
{
"name": "Alice",
"age": 25
}
前端需要根据不同的数据写不同的解析函数,极大地增加了前端开发的负担(写死我了)。
问题解决
为了解决数据格式不一致的问题,就需要后端的响应统一,约定好响应的数据格式,就能极大地减轻开发的负担,比如,后端统一响应Result
:
import lombok.Data;
import java.io.Serializable;
/**
* 后端统一返回结果
* @param <T>
*/
@Data
public class Result<T> implements Serializable {
private Integer code; //编码:1成功,0和其它数字为失败
private String msg; //错误信息
private T data; //数据
public static <T> Result<T> success() {
Result<T> result = new Result<T>();
result.code = 1;
return result;
}
public static <T> Result<T> success(T object) {
Result<T> result = new Result<T>();
result.data = object;
result.code = 1;
return result;
}
public static <T> Result<T> error(String msg) {
Result result = new Result();
result.msg = msg;
result.code = 0;
return result;
}
}
这样一来,前端的接收数据就能很方便了,因为知道了返回的数据格式,写起解析来也是得心应手。
总结
不要偷懒啊,偷的懒到后面还得补回来的(