当前位置: 首页 > news >正文

SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理

统一HTTP请求代码

public class HttpCode
{/*** 操作成功*/public static final int SUCCESS = 200;/*** 对象创建成功*/public static final int CREATED = 201;/*** 请求已经被接受*/public static final int ACCEPTED = 202;/*** 操作已经执行成功,但是没有返回数据*/public static final int NO_CONTENT = 204;/*** 资源已被移除*/public static final int MOVED_PERM = 301;/*** 重定向*/public static final int SEE_OTHER = 303;/*** 资源没有被修改*/public static final int NOT_MODIFIED = 304;/*** 参数列表错误(缺少,格式不匹配)*/public static final int BAD_REQUEST = 400;/*** 未授权*/public static final int UNAUTHORIZED = 401;/*** 访问受限,授权过期*/public static final int FORBIDDEN = 403;/*** 资源,服务未找到*/public static final int NOT_FOUND = 404;/*** 不允许的http方法*/public static final int BAD_METHOD = 405;/*** 资源冲突,或者资源被锁*/public static final int CONFLICT = 409;/*** 不支持的数据,媒体类型*/public static final int UNSUPPORTED_TYPE = 415;/*** 系统内部错误*/public static final int ERROR = 500;/*** 接口未实现*/public static final int NOT_IMPLEMENTED = 501;/*** 系统警告消息*/public static final int WARN = 601;
}

统一接口返回

public class R   extends HashMap<String, Object> {/** 状态码 */private static final String CODE = "code";/** 返回内容 */private static final String MSG = "msg";/** 数据对象 */private static final String DATA = "data";private static final String TOTAL="total";/**全参构造*/public R(int code, String msg, Object data){super.put(CODE, code);super.put(MSG, msg);super.put(DATA, data);}/**分页构造*/public R(int code, String msg, Object data,int total){super.put(CODE, code);super.put(MSG, msg);super.put(DATA, data);super.put(TOTAL, total);}/*** 返回成功消息* @param msg 返回内容* @param data 数据对象* @return 成功消息*/public static R success(String msg, Object data){return new R(HttpCode.SUCCESS, msg, data);}/*** 返回失败消息* @param msg 返回内容* @param data 数据对象* @return 成功消息*/public static R error(String msg, Object data){return new R(HttpCode.ERROR, msg, data);}/*** 返回警告消息* @param msg* @param data* @return*/public static R warn(String msg, Object data){return new R(HttpCode.WARN, msg, data);}/*** 分页获取参数* @param data* @param total* @return 分页数据*/public static R page(Object data,int total){return new R(200,"获取成功",data,total);}}

接口测试

@RequestMapping("/user")
public R user() {List<Integer> list =new ArrayList<>();list.add(12);list.add(134);R result = R.page(list,500);result.put("abc",123);return result;
}
{"msg":"获取成功","total":500,"code":200,"abc":123,"data":[12,134]}
http://www.xdnf.cn/news/124885.html

相关文章:

  • 使用vue2开发一个医疗预约挂号平台-前端静态网站项目练习
  • 携国家图书馆文创打造AI创意短片,阿里妈妈AIGC能力面向商家开放
  • Gazebo 仿真环境系列教程(一):环境安装与基础使用
  • ubuntu20.04(ROS noetic版)安装cartographer
  • 一次丝滑的手工SQL注入
  • 深度剖析RLHF:语言模型“类人输出”的训练核心机制
  • 全面认识Chroma 向量数据库中的索引和相似度
  • Python基础语法:标识符,运算符,数据输入input(),数据输出print(),转义字符,续行符
  • 如何通过CRM管理软件提升客户满意度:实战策略与系统应用解析
  • java项目中分库分表使用场景?具体应该如何实现?
  • Streamlit从入门到精通:构建数据应用的利器
  • 数据中台-数据质量管理系统:从架构到实战
  • ai如何赋能艺术教育
  • LainChain技术解析:基于RAG架构的下一代语言模型增强框架
  • SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)
  • 如何构建高效的接口自动化测试框架?
  • vue2项目,为什么开发环境打包出来的js文件名是1.js 2.js,而生产环境打包出来的是chunk-3adddd.djncjdhcbhdc.js
  • Java面试高频问题(21-25)
  • Linux GPIO驱动开发实战:Poll与异步通知双机制详解
  • 解决VS Code中Vue项目不识别`@/`的可能解决方案及总结
  • 高性能服务器配置经验指南2——深度学习准备(驱动安装,Anaconda安装,不同版本Cuda安装)
  • 什么是 低秩矩阵(Low-Rank)
  • 蓝桥杯 20. 压缩变换
  • 数据库监控 | MongoDB监控全解析
  • 算法之分支定界
  • 【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
  • Spring Boot中自定义404异常处理问题学习笔记
  • redis集群的三种部署方式
  • JS 应用算法逆向三重断点调试调用堆栈BP 插件发包安全结合
  • 【C语言】C语言中的联合体与枚举类型