返回统一的结果对象(json格式)
发布日期:2021-05-25 12:33:58 浏览次数:32 分类:精选文章

本文共 1957 字,大约阅读时间需要 6 分钟。

项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一,使前端(iOS Android Web)对数据的操作更一致、轻松。

数据返回格式说明

为了前后端开发的交互方便,统一所有的返回数据格式如下:

{    "success": Boolean, // 响应是否成功    "code": Integer, // 响应码    "message": String, // 返回消息    "data": HashMap // 返回数据,放在键值对中}

为了实现这一目标,我们创建了一个通用类R,该类适用于所有接口返回数据。该类既支持编程方式调用,也支持链式编程。

实现概述

package com.kaki.commonutils;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import java.util.HashMap;import java.util.Map;@Datapublic class R {    @ApiModelProperty(value = "是否成功")    private Boolean success;    @ApiModelProperty(value = "返回码")    private Integer code;    @ApiModelProperty(value = "返回消息")    private String message;    @ApiModelProperty(value = "返回数据")    private Map
data = new HashMap<>(); private R() { } public static R ok() { R r = new R(); r.setSuccess(true); r.setCode(ResultCode.SUCCESS); r.setMessage("成功"); return r; } public static R error() { R r = new R(); r.setSuccess(false); r.setCode(ResultCode.ERROR); r.setMessage("失败"); return r; } public R success(Boolean success) { this.setSuccess(success); return this; } public R message(String message) { this.setMessage(message); return this; } public R code(Integer code) { this.setCode(code); return this; } public R data(String key, Object value) { this.data.put(key, value); return this; } public R data(Map
map) { this.data = map; return this; }}

功能说明

  • 静态创建实例:通过ok()error()两个静态方法创建成功或失败的响应实例。

  • 链式编程:支持通过方法链式调用,如success().message().code()

  • 数据灵活性:允许根据需要添加或修改数据类型,可扩展性强。

  • 状态码管理

    可以使用接口常量类ResultCode定义状态码:

    public interface ResultCode {    public static Integer SUCCESS = 20000; // 成功    public static Integer ERROR = 20001; // 失败}

    优化说明

    • 可读性:通过清晰的注释和分隔符使代码更易理解。
    • 可扩展性:支持不同类型的数据返回,满足多样化需求。
    • 标准化:提供统一的API设计规范,便于前后端开发。

    通过这种方式,我们可以确保所有接口返回的数据格式一致,使前端获取数据更加简单高效。

    上一篇:统一异常处理
    下一篇:springboot整合swagger进行测试

    发表评论

    最新留言

    初次前来,多多关照!
    [***.217.46.12]2025年04月13日 00时34分05秒