
返回统一的结果对象(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 Mapdata = 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设计规范,便于前后端开发。
通过这种方式,我们可以确保所有接口返回的数据格式一致,使前端获取数据更加简单高效。
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月13日 00时34分05秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
科技前沿:React 组件之间通信的新模式与实践
2023-01-23
PHP实现异步定时多任务消息推送
2023-01-23
回溯法介绍
2023-01-23
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
公共课计算机总复习 核心知识点(1)
2023-01-23
上下文无关文法
2023-01-23
STM8的C语言编程(14)--+PWM
2023-01-23
SpringBoot 学习笔记完整教程4
2023-01-23
【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
2023-01-23
Servlet的三个基本方法
2023-01-23
AI驱动的企业信用评级模型可解释性增强系统
2023-01-23
反 TypeScript
2023-01-23
微信小程序wx.previewImage实现图片预览
2023-01-23