SpringBoot接口返回结果封装方法实例详解

rest接口会返回各种各样的数据,如果对接口的格式不加约束,很容易造成混乱。

在实际项目中,一般会把结果放在一个封装类中,封装类中包含http状态值,状态消息,以及实际的数据。这里主要记录两种方式:(效果如下)

1、采用Map对象作为返回对象。

/**
 * Http请求接口结果封装方法
 *
 * @param object  数据对象
 * @param msgSuccess 提示信息(请求成功)
 * @param msgFailed 提示信息(请求失败)
 * @param isOperate 是否操作类型(增、删、改)
 * @return
 */
public static Map<String, Object> getResponse(Object object, String msgSuccess, String msgFailed, boolean isOperate) {
    Map<String, Object> data = new HashMap<>();
    if (object != null) {
        data.put("success", true);
        data.put("msg", msgSuccess);
        data.put("result", 1);
    } else {
        data.put("success", false);
        data.put("msg", msgFailed);
        data.put("result", 0);
    }
    if (!isOperate) {
        data.put("data", object);
    } else {
        data.put("data", null);
    }
    return data;
}

2、根据不同类型结果,调用不同的封装方法。

/**
 * 格式化请求结果(List类型)
 *
 * @param <T>
 * @param objectList 对象列表
 * @param msgSuccess 信息提示(请求成功)
 * @param msgFailed 信息提示(请求失败)
 * @return
 */
@SuppressWarnings("unchecked")
public static <T> Tb_Response<T> getResponse(List<T> objectList, String msgSuccess, String msgFailed) {
    Tb_Response<T> tb_Response = new Tb_Response<T>();
    if (objectList.size() > 0) {
        tb_Response.setSuccess(true);
        tb_Response.setMsg(msgSuccess);
        tb_Response.setResult(1);
        tb_Response.setData((List<T>) objectList);
    } else {
        tb_Response.setSuccess(false);
        tb_Response.setMsg(msgFailed);
        tb_Response.setResult(0);
    }
    return (Tb_Response<T>) tb_Response;
}

/**
 * 格式化请求结果(Object类型)
 *
 * @param <T>
 * @param object 对象信息
 * @param msgSuccess 信息提示(请求成功)
 * @param msgFailed 信息提示(请求失败)
 * @return
 */
@SuppressWarnings("unchecked")
public static <T> Tb_ResponseData<T> getResponseData(T object, String msgSuccess, String msgFailed) {
    Tb_ResponseData<T> tb_ResponseData = new Tb_ResponseData<T>();
    if (object != null) {
        tb_ResponseData.setSuccess(true);
        tb_ResponseData.setMsg(msgSuccess);
        tb_ResponseData.setResult(1);
        tb_ResponseData.setData((T) object);
    } else {
        tb_ResponseData.setSuccess(false);
        tb_ResponseData.setMsg(msgFailed);
        tb_ResponseData.setResult(0);
        tb_ResponseData.setData(null);
    }
    return (Tb_ResponseData<T>) tb_ResponseData;
}

/**
 * 格式化请求结果(Boolean类型)
 *
 * @param result 请求结果
 * @param msgSuccess 信息提示(请求成功)
 * @param msgFailed 信息提示(请求失败)
 * @return
 */
public static Tb_ResponseData<Boolean> getResponseData(boolean result, String msgSuccess, String msgFailed) {
    Tb_ResponseData<Boolean> tb_ResponseData = new Tb_ResponseData<Boolean>();
    if (result) {
        tb_ResponseData.setSuccess(true);
        tb_ResponseData.setMsg(msgSuccess);
        tb_ResponseData.setResult(1);
    } else {
        tb_ResponseData.setSuccess(false);
        tb_ResponseData.setMsg(msgFailed);
        tb_ResponseData.setResult(0);
    }
    tb_ResponseData.setData(null);
    return tb_ResponseData;
}

到此这篇关于SpringBoot接口返回结果封装方法的文章就介绍到这了,更多相关SpringBoot接口封装内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot设置静态资源访问控制和封装集成方案

    背景 最近在着手公司框架优化及项目实际应用,原先方案是springboot+html前后端分离单独部署,后端人员兼职前端开发,后续产品线业务进行优化,面向企业使用部分由移动网站人员负责设计开发,内部配置后台管理还是由后端负责,随着框架不停迭代与使用的项目越来越多,项目升级框架变得十分麻烦,后端部分可以通过maven私服进行版本迭代,后台管理页面升级则需要进行各个项目拷贝,所以决定对框架进行整合,将后台管理页面与框架后端代码进行整合发布. 结构设计 框架打包后台管理相关标准资源及页面(框架publ

  • springboot如何使用@ConfigurationProperties封装配置文件

    使用@ConfigurationProperties封装配置文件 业务场景: 把配置文件的信息,读取并自动封装成实体类,可以使用@ConfigurationProperties,把同类的配置信息自动封装成实体类. 1.在pom.xml中添加依赖包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor<

  • SpringBoot封装自己的Starter的实现方法

    一.说明 我们在使用SpringBoot的时候常常要引入一些Starter,例如spring-boot-starter-web,官方为我们提供了几乎所有的默认配置,很好的降低了使用框架时的复杂度,所以在用xxx-starter的时候,可以不用费心去写一些繁琐的配置文件,即使必要的配置在application.properties或application.yml中配置就可以了,当你实现了一个Starter,可以在不同的项目中复用,非常方便,今天我们来编写自己的Starter以之前的短信业务为例.

  • springboot封装JsonUtil,CookieUtil工具类代码实例

    这篇文章主要介绍了springboot封装JsonUtil,CookieUtil工具类过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JsonUtil public class JsonUtil { private static ObjectMapper objectMapper = new ObjectMapper(); public static String objectToString(Object object) throws

  • SpringBoot学习系列之MyBatis Plus整合封装的实例详解

    前言 MyBatis-Plus是一款MyBatis的增强工具(简称MP),为简化开发.提高效率,但我们并没有直接使用MP的CRUD接口,而是在原来的基础上封装一层通用代码,单表继承我们的通用代码,实现了单表的基础get.save(插入/更新).list.page.delete接口,使用Vo去接收.传输数据,实体负责与数据库表映射. 这样做的目的是与我们之前的那套jpa保持编码风格上的一致,当我们的通用接口不能满足要求时,应当先考虑使用MP的Service层CRUD接口,然后是Mapper的接口,

  • 浅谈SpringBoot如何封装统一响应体

    一.前言 在上一篇 SpringBoot 参数校验中我们对参数校验添加了异常处理,但是还是有不规范的地方,没有用统一响应体进行返回,在这篇文章中介绍如何封装统一响应体. 关于统一响应体的封装,没有一个标准答案,我在各种技术社区看了一遍,汇总了一个复用性比较好的方案. 二.添加结果类枚举 在项目目录下面建一个 responseEntity 的 package,然后在里面建一个 ResultEnum 枚举类,添加如下代码: 这边介绍一下枚举类的用法.枚举类的作用实际上就是定义常量,如果不使用枚举类,

  • SpringBoot接口返回结果封装方法实例详解

    rest接口会返回各种各样的数据,如果对接口的格式不加约束,很容易造成混乱. 在实际项目中,一般会把结果放在一个封装类中,封装类中包含http状态值,状态消息,以及实际的数据.这里主要记录两种方式:(效果如下) 1.采用Map对象作为返回对象. /** * Http请求接口结果封装方法 * * @param object 数据对象 * @param msgSuccess 提示信息(请求成功) * @param msgFailed 提示信息(请求失败) * @param isOperate 是否操

  • springboot config 拦截器使用方法实例详解

    本文介绍Spring-Boot中使用拦截器,一般在拦截器中处理跨域处理,允许跨域访问项目,拦截器使用详细资料请查阅官网. 实现自定义拦截器步骤: 1.创建一个类并实现HandlerInterceptor接口. 2.创建一个Java类继承WebMvcConfigurerAdapter,并重写 addInterceptors 方法. 2.将自定义的拦截器交由spring管理,然后将对像手动添加到拦截器链中(在addInterceptors方法中添加). 创建拦截器类 package com.exam

  • SpringBoot使用WebSocket的方法实例详解

    WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据.在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输. 在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道.两者之间就直接可以数据互相传送. java怎么写 配置Be

  • springboot单元测试两种方法实例详解

    这篇文章主要介绍了springboot单元测试两种方法实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 springboot的单元测试,这里介绍两种方式,一种是在测试类中添加注解:另一种是在代码中启动项目的main方法中继承接口(也可以写在其他方法中). 如 对查看数据库的连接池信息 进行单元测试 1. 在类上使用注解: @RunWith(SpringRunner.class) @SpringBootTest @RunWith(Sprin

  • springboot Mongodb的集成与使用实例详解

    说说springboot与大叔lind.ddd的渊源 Mongodb在Lind.DDD中被二次封装过(大叔的.net和.net core),将它当成是一种仓储来使用,对于开发人员来说只公开curd几个标准的接口即可,而在springboot框架里,它与大叔lind有些类似之处,同样是被二次封装了,开发人员只需要关注自己的业务即可,而标准的curd操作完成由springboot帮助我们来实现,一般地,我们会设计一个与实体对象的接口仓储,让它去继承mongo的标准接口,然后在springboot的依

  • Spring boot进行参数校验的方法实例详解

    Spring boot开发web项目有时候我们需要对controller层传过来的参数进行一些基本的校验,比如非空.整数值的范围.字符串的长度.日期.邮箱等等.Spring支持JSR-303 Bean Validation API,可以方便的进行校验. 使用注解进行校验 先定义一个form的封装对象 class RequestForm { @Size(min = 1, max = 5) private String name; public String getName() { return n

  • Android 拦截返回键事件的实例详解

    Android 拦截返回键事件的实例详解 KeyEvent类 Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述Android中的 按键事件和返回键有关的常量和方法有. KeyEvent.KEYCODE_BACK: 表示key类型为返回键 KeyEvent.ACTION_DOWN:表示事件为按下key,如果一直按住不放,则会不停产生此事件. KeyEvent.ACTION_UP:表示事件为为放开key,一次点击key过程只会调用一次. public final in

  • SpringBoot 集成Kaptcha实现验证码功能实例详解

    在一个web应用中验证码是一个常见的元素.不管是防止机器人还是爬虫都有一定的作用,我们是自己编写生产验证码的工具类,也可以使用一些比较方便的验证码工具.在网上收集一些资料之后,今天给大家介绍一下kaptcha的和springboot一起使用的简单例子. 准备工作: 1.你要有一个springboot的hello world的工程,并能正常运行. 2.导入kaptcha的maven: <!-- https://mvnrepository.com/artifact/com.github.penggl

  • Android中webview与JS交互、互调方法实例详解

    Android中webview与JS交互.互调方法实例详解 前言: 对于试水的功能,一般公司都会采用H5的方式来开发,可以用很少的资源与很短的项目工期来完成. 但许多情况下,H5页面会需要一些原生持有的一些如用户信息之类的数据,一些交互也需要调用原生的,如toast之类要保持同一个手机风格一致的交互行为.这个时候就需要能够让JS主动调用原生的方法来进行操作或者获取数据.或者是原生调用JS的方法在H5加载的时候传递一些参数. 对于原生调用JS的方法 我们需要实现一个WebViewClient,在这

随机推荐