Result.java
public class Result<T> {
private Integer code;
private String msg;
private String message;
private T data; public Integer getCode() {
return code;
} public void setCode(Integer code) {
this.code = code;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} public T getData() {
return data;
} public void setData(T data) {
this.data = data;
} public Result ok(T t){
this.setCode(1000);
this.setMsg("成功");
this.setMessage("成功");
this.setData(t);
return this;
} public Result fail(String msg){
this.setCode(1001);
this.setMsg(msg);
this.setMessage(msg);
return this;
} public Result() {
} public Result(Integer code, String msg) {
this.code = code;
this.msg = msg;
this.setMessage(msg);
} public Result(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
this.setMessage(msg);
} }

使用

new Result<>().fail("缺少参数");

new Result<>().ok(data);

可以使用另一个

引入maven

        <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency> <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

R.java

import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.Data; import java.io.Serializable; @Data
public class R<M> implements Serializable {
// 返回状态【0-成功,1-业务失败,999-表示系统异常】
@JSONField(ordinal = 1)
private int code;
// 返回信息
@JSONField(ordinal = 2)
private String message;
// 返回数据实体;
@JSONField(ordinal = 3,serialzeFeatures = {SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullStringAsEmpty})
private M data; private R(){} public static<M> R success(M m){
R r = new R();
r.setCode(0);
r.setMessage("success");
r.setData(m); return r;
} public static R successData(String data){
R r = new R();
r.setCode(0);
r.setMessage("success");
r.setData(data);
return r;
} public static<M> R success(){
R r = new R();
r.setCode(0);
r.setMessage("success");
return r;
} public static<M> R success(String msg){
R r = new R();
r.setCode(0);
r.setMessage(msg); return r;
} public static<M> R serviceFail(String msg){
R r = new R();
r.setCode(1);
r.setMessage(msg); return r;
} public static<M> R appFail(String msg){
R r = new R();
r.setCode(999);
r.setMessage(msg); return r;
} public static<M> R error(int code,String msg){
R r = new R();
r.setCode(code);
r.setMessage(msg); return r;
} public static<M> R serviceFail(){
R r = new R();
r.setCode(1);
r.setMessage("系统异常"); return r;
} }
ApiResult.java
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.commons.lang3.StringUtils; import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map; @Data
@Accessors(chain = true)
@Builder
@AllArgsConstructor
public class ApiResult<T> implements Serializable { private int code; private T data; private String msg; @JSONField(format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date time; public ApiResult() { } public static ApiResult result(boolean flag){
if (flag){
return ok();
}
return fail("");
} public static ApiResult result(ApiCode apiCode){
return result(apiCode,null);
} public static ApiResult result(ApiCode apiCode,Object data){
return result(apiCode,null,data);
} public static ApiResult result(ApiCode apiCode,String msg,Object data){
String message = apiCode.getMsg();
if (StringUtils.isNotBlank(msg)){
message = msg;
}
return ApiResult.builder()
.code(apiCode.getCode())
.msg(message)
.data(data)
.time(new Date())
.build();
} public static ApiResult ok(){
return ok(null);
} public static ApiResult ok(Object data){
return result(ApiCode.SUCCESS,data);
} public static ApiResult ok(String key,Object value){
Map<String,Object> map = new HashMap<>();
map.put(key,value);
return ok(map);
} public static ApiResult fail(ApiCode apiCode){
return result(apiCode,null);
} public static ApiResult fail(String msg){
return result(ApiCode.FAIL,msg,null); } public static ApiResult fail(ApiCode apiCode,Object data){
if (ApiCode.SUCCESS == apiCode){
throw new RuntimeException("失败结果状态码不能为" + ApiCode.SUCCESS.getCode());
}
return result(apiCode,data); } public static ApiResult fail(String key,Object value){
Map<String,Object> map = new HashMap<>();
map.put(key,value);
return result(ApiCode.FAIL,map);
} }

常用返回API状态码

ApiCode.java

public enum ApiCode {

    SUCCESS(200, "操作成功"),

    UNAUTHORIZED(401, "非法访问"),

    NOT_PERMISSION(403, "没有权限"),

    NOT_FOUND(404, "你请求的路径不存在"),

    FAIL(500, "操作失败"),

    SYSTEM_EXCEPTION(5000,"系统异常!"),

    PARAMETER_EXCEPTION(5001,"请求参数校验异常"),

    PARAMETER_PARSE_EXCEPTION(5002,"请求参数解析异常"),

    HTTP_MEDIA_TYPE_EXCEPTION(5003,"HTTP Media 类型异常"),

    SYSTEM_LOGIN_EXCEPTION(5005,"系统登录异常"),

    ERROR_AUTH(201,"用户名或密码错误"),

    NEED_PARAM(202,"缺少参数"),

    OLD_PWD_ERROR(203,"旧密码输入错误"),

    ;

    private final int code;
private final String msg; ApiCode(final int code, final String msg) {
this.code = code;
this.msg = msg;
} public static ApiCode getApiCode(int code) {
ApiCode[] ecs = ApiCode.values();
for (ApiCode ec : ecs) {
if (ec.getCode() == code) {
return ec;
}
}
return SUCCESS;
} public int getCode() {
return code;
} public String getMsg() {
return msg;
} }

JAVAWEB统一返回格式Result类的更多相关文章

  1. Spring统一返回Json工具类,带分页信息

    前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...

  2. ASP.NET Core 2.2 WebApi 系列【八】统一返回格式(返回值、模型验证、异常)

    现阶段,基本上都是前后端分离项目,这样一来,就需要前后端配合,没有统一返回格式,那么对接起来会很麻烦,浪费时间.我们需要把所有接口及异常错误信息都返回一定的Json格式,有利于前端处理,从而提高了工作 ...

  3. Spring Boot API 统一返回格式封装

    今天给大家带来的是Spring Boot API 统一返回格式封装,我们在做项目的时候API 接口返回是需要统一格式的,只有这样前端的同学才可对接口返回的数据做统一处理,也可以使前后端分离 模式的开发 ...

  4. 封装一个统一返回json结果类JsonResult

    import java.io.Serializable; public class JsonResult implements Serializable{ private static final l ...

  5. SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!

    大家好,我是飘渺. 今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常. 首先我们来看看为什么要返回统一的标准格式? 为什么要对Sp ...

  6. SpringBoot 如何统一后端返回格式

    在前后端分离的项目中后端返回的格式一定要友好,不然会对前端的开发人员带来很多的工作量.那么SpringBoot如何做到统一的后端返回格式呢?今天我们一起来看看. 为什么要对SpringBoot返回统一 ...

  7. springboot统一返回json数据格式并配置系统异常拦截

    本文链接:https://blog.csdn.net/syystx/article/details/82870217通常进行前后端分离开发时我们需要定义统一的json数据交互格式并对系统未处理异常进行 ...

  8. 一百零一:CMS系统之自定义restful风格json返回格式和内容

    鉴于flask-restful用起来太麻烦,这里自定义json统一返回格式和内容 from flask import jsonify class HttpCode: """ ...

  9. Java封装接口统一返回数据模板

    现在大多数都使用前后端分离开发模式,前端通过Ajax请求访问后台服务器,后台返回JSON数据供前端操作,这里编写一个统一返回数据模板类,方便日后操作 public class R extends Ha ...

随机推荐

  1. 【豆科基因组】利马豆/洋扁豆Lima bean(Phaseolus lunatus L.)基因组2021NC

    目录 一.来源 二.结果 扁豆的染色体水平高质量组装 扁豆相关农艺性状的QTL定位 直系/旁系同源的演化和物种形成事件 与农艺性状相关基因的直系同源物 群体结构分析揭示扁豆遗传簇 豆荚发育过程中的基因 ...

  2. R语言与医学统计图形-【25】ggplot图形分面

    ggplot2绘图系统--图形分面 ggplot2的分面faceting,主要有三个函数: facet_grid facet_wrap facet_null (不分面) 1. facet_grid函数 ...

  3. CPU大小端模式及转换

    通信协议中的数据传输.数组的存储方式.数据的强制转换等这些都会牵涉到大小端问题. CPU的大端和小端模式很多地方都会用到,但还是有许多朋友不知道,今天暂且普及一下. 一.为什么会有大小端模式之分呢? ...

  4. Hbase与Phoenix整合

    目录 一.简介 二.安装 三.Phoenix Shell操作 SCHEMA操作 1.创建schema 2.使用schema 3.删除schema 表操作 1.显示所有表 2.创建表 3.表数据的增删改 ...

  5. Sharding-JDBC 实现水平分库分表

    1.需求分析

  6. vim一键整理代码命令

    vim下写代码超实用代码格式整理命令,仅需四步 ①先使用 gg 命令使光标回到第一行 ②shift+v 进入可视模式 ③shift+g 全选 ④按下  =  即可 混乱的代码格式 四步整理以后 工整又 ...

  7. 顺序栈(C++)

    栈的定义为只允许在表的末端进行插入和删除的线性表.简而言之就是先进后出的线性表. 插入和删除的一端被称呼为栈顶(top),而不允许插入删除的一端被称为栈底(bottom).无元素时的栈即为空栈. 使用 ...

  8. 优化 if-else 代码的 8 种方案

    前言 代码中如果if-else比较多,阅读起来比较困难,维护起来也比较困难,很容易出bug,接下来,本文将介绍优化if-else代码的八种方案. 方案. 优化方案一:提前return,去除不必要的el ...

  9. Spring.DM版HelloWorld

    本文主要描述使用Spring.DM2.0,创建OSGi的HelloWorld演示程序,理解Spring.DM的OSGi框架实现机制.   环境描述: 项目 版本 Eclipse 3.7.x JDK 1 ...

  10. mysql 报 'Host ‘XXXXXX’ is blocked because of many connection errors'

    1. 问题:服务启动时,日志报错,导致启动失败: Caused by: com.mysql.cj.exceptions.CJException: null,  message from server: ...