SpringBoot:返回响应,统一封装

news2024/7/2 4:41:41

说明

接口的返回响应,封装成统一的数据格式,再返回给前端。

返回响应,统一封装实体,数据结构如下。

在这里插入图片描述

代码

package com.example.core.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * 返回响应,统一封装实体
 *
 * @param <T> 数据实体泛型
 */
@Getter
@ToString
@EqualsAndHashCode
@AllArgsConstructor(access = AccessLevel.PRIVATE)
@Schema(name = "返回响应", description = "返回响应,统一封装实体")
public class Result<T> {

    @Schema(description = "请求是否成功:true 成功,false 失败", example = "true")
    private Boolean success;

    @Schema(description = "用户提示", example = "操作成功!")
    private String userMessage;

    /**
     * 错误码<br>
     * 调用成功时,为 null。<br>
     * 示例:10001
     */
    @Schema(description = "错误码")
    private Integer errorCode;

    /**
     * 错误信息<br>
     * 调用成功时,为 null。<br>
     * 示例:"验证码无效"
     */
    @Schema(description = "错误信息")
    private String errorMessage;

    /**
     * 数据实体(泛型)<br>
     * 当接口没有返回数据时,为 null。
     */
    @Schema(description = "数据实体(泛型)")
    private T data;


    public static <T> Result<T> success() {
        return success(null);
    }


    public static <T> Result<T> success(T data) {
        return new Result<>(true, "操作成功!", null, null, data);
    }


    public static <T> Result<T> fail(String userMessage, Integer errorCode, String errorMessage) {
        return new Result<>(false, userMessage, errorCode, errorMessage, null);
    }

}

接口测试

代码

package com.example.web;

import com.example.core.model.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.lang.Nullable;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("result")
@Tag(name = "Result")
public class ResultController {

    @Operation(summary = "查询 Result<String>")
    @Parameter(name = "name", description = "姓名")
    @GetMapping("/string")
    public Result<String> getResultWithString(@Nullable String name) {
        String text = "您好," + name + "!";
        return Result.success(text);
    }

}


接口文档效果

在这里插入图片描述

接口调用效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1012806.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

英飞凌TC3xx--深度手撕HSM安全启动(四)--TC3xx HSM使能和配置技巧

上一章,我们简单聊了下英飞凌TC3xx的HSM的系统框架、相关UCB、Host和HSM通信模块。今天着重分析HSM的使能。 1. 系统引入HSM的思考 为什么要增加HSM 信息安全方面考虑,系统的安全启动、ECU之间安全数据的交互、ECU内部的敏感信息保存 TC3xx使能HSM后,HSM的代码应该…

spring aop源码解析

spring知识回顾 spring的两个重要功能&#xff1a;IOC、AOP&#xff0c;在ioc容器的初始化过程中&#xff0c;会触发2种处理器的调用&#xff0c; 前置处理器(BeanFactoryPostProcessor)后置处理器(BeanPostProcessor)。 前置处理器的调用时机是在容器基本创建完成时&#xff…

安防监控系统/视频云存储/视频AI智能分析:人形检测算法应用汇总

随着人工智能的飞速发展&#xff0c;TSINGSEE青犀智能AI算法功能也日渐丰富&#xff0c;除了常见的人脸、工服、安全帽检测以外&#xff0c;人形检测算法的应用也十分广泛&#xff0c;主要可以应用在以下场景&#xff1a; 1、安防监控系统 人形检测算法可以应用于监控摄像头中…

ChatGPT OpenAI 针对HR与财务岗位一键核对工资表差异

HR人力资源与财务部门关于奖金的计算,两个部门计算的结果有差异如何将差异内容显示。 如何快速找出不相同的单元格。 我们给ChatGPT来提出需求来解决。 prompt: 请写出一个VBA程序找出E3:E12单元格区域与E16:E25单元格区域中不相同的单元格,并填充为红色背景显示,请写出完…

23062QTday1

自己制作一个登录界面 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QApplication>#include <QLineEdit> #include <QLabel> #include <QMovie> class Widget : public QWidget {Q_OBJECTpublic:Widget(…

概率统计笔记:从韦恩图的角度区分 条件概率和联合概率

联合概率&#xff1a;两个或多个事件同时发生的概率。用 P(A∩B) 或 P(A,B) 表示 条件概率&#xff1a;在已知某个事件发生的条件下&#xff0c;另一个事件发生的概率。用P(A∣B) 表示在事件 B 发生的条件下&#xff0c;事件 A 发生的概率。 不难发现联合概率的样本空间更大&am…

多线程|多进程|高并发网络编程

一.多进程并发服务器 多进程并发服务器是一种经典的服务器架构&#xff0c;它通过创建多个子进程来处理客户端连接&#xff0c;从而实现并发处理多个客户端请求的能力。 概念&#xff1a; 服务器启动时&#xff0c;创建主进程&#xff0c;并绑定监听端口。当有客户端连接请求…

华为云云耀云服务器L实例评测 | 搭建docker环境

目录 &#x1f352;docker的概念 &#x1f352;Docker 的优点 &#x1fad0;1、快速&#xff0c;一致地交付您的应用程序 &#x1fad0;2、响应式部署和扩展 &#x1fad0;3、在同一硬件上运行更多工作负载 &#x1f352;云耀云服务器L实例 &#x1fad0;产品优势 &#x1f95d…

如何使用反 CSRF 令牌保护您的网站和 Web 应用程序

防止跨站点请求伪造攻击 (CSRF/XSRF)的最常见方法是使用反 CSRF 令牌&#xff0c;该令牌只是一个唯一值集&#xff0c;然后由 Web 应用程序需要。CSRF 是一种客户端攻击&#xff0c;可用于将用户重定向到恶意网站、窃取敏感信息或在用户会话中执行其他操作。幸运的是&#xff0…

组件自定义事件学习笔记

组件自定义事件_绑定 JS中有内置事件比如click&#xff0c;keyup。内置事件是给标签使用的&#xff0c;而自定义事件是给组件使用的。 子组件给父组件传递数据有两种方式 App父组件&#xff0c;School和Student是子组件。 子组件给父组件传递函数类型的props实现&#xff…

【深度学习】 Python 和 NumPy 系列教程(廿五):Matplotlib详解:3、多子图和布局:subplot()函数

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 3、多子图和布局 1. subplot()函数 简单示例 一、前言 Python是一种高级编程语言&#xff0c;由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名&#xff0c;并且具有强大的功能…

【Redis】深入理解 Redis 持久化机制 —— RDB 和 AOF

文章目录 一、Redis 的持久化二、RDB 持久化机制2.1 对 RBD 的认识RDB 的概念RDB 持久化机制的优缺点RDB 的相关配置 2.2 RDB 的触发时机2.2 RDB 的触发时机自动触发手动触发&#xff1a;SAVE 和 BGSAVE 2.3 RDB 文件的处理保存 RDB 文件压缩 RDB 文件校验 RDB 文件 三、AOF 持…

Python如何查看内存泄漏

在python中&#xff0c;当一个变量不被引用的时候就会触发垃圾回收机制从而被从内存中删除&#xff0c;但有时一个不注意可能就会出现内存泄漏问题。 Python中可能的会出现内存泄露的情况 (1) 循环引用&#xff1a;当两个或多个对象相互引用&#xff0c;造成的循环引用进而导…

Pytorch学习:torch.argmax(input, dim, keepdim=False)详解

torch.argmax() 返回输入中所有元素的最大值的索引&#xff0c;与torch.max()中返回(values, indices)中的indices类似&#xff0c;它也常被用于深度学习中的分类问题。 在下面程序中&#xff0c;使用torch.argmax() import torcha torch.tensor([[1, 2, 3, 4],[4, 1, 2, 3]…

5个免费的3D钣金CAD软件

作为一名咨询顾问&#xff0c;我一直在寻找能够满足大客户需求的最佳 CAD 软件。 但我知道并不是每个人都在寻找劳斯莱斯式的钣金设计解决方案。 有时你只想要一些简单的东西&#xff0c;而且最好是免费的。 例如&#xff0c;如果你正在设计简单的折叠钣金零件&#xff0c;则只…

Linux安装filebeat

相关链接 主⻚&#xff1a; https://www.elastic.co/cn/products/beats/filebeat 下载&#xff1a; wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz 百度云链接&#xff1a;https://pan.baidu.com/s/1MLshk_VyZZTmKhZvlS…

基于SpringBoot的一套强大后台管理系统

概述 一个功能强大而完善的后台管理系统框架&#xff0c;用户可基于此框架进行二次开发&#xff0c;定制成符合自己的需求的后台管理系统&#xff01; 详细 运行截图&#xff1a; 项目结构&#xff1a; 详细说明&#xff1a; 环境说明&#xff1a; jdk1.8mavenMySQL5.7 项…

Vue框架--Vue过滤器

下面&#xff0c;我们一起来看看Vue中的过滤器。 过滤器&#xff1a; 定义&#xff1a;对要显示的数据进行特定格式化后再显示&#xff08;适用于一些简单逻辑的处理&#xff09;。 语法&#xff1a; 1.注册过滤器&#xff1a;Vue.filter(name,callback) 或 ne…

分享一个springboot+uniapp开发的线上马拉松报名小程序源码 lw 调试

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

【史上最硬核分享】Docker+jenkinsPipeline 运行实现 python 自动化(超详细)

一、实现思路 在 Linux 服务器安装 docker创建 jenkins 容器jenkins 中创建 pipeline 项目根据自动化项目依赖包构建 python 镜像(构建自动化 python 环境)运行新的 python 容器&#xff0c;执行 jenkins 从仓库中拉下来的自动化项目执行完成之后删除容器 二、环境准备 Linu…