Java请求体和响应体

请求体

@Data
@JsonNaming(value = PropertyNamingStrategies.UpperCamelCaseStrategy.class)
public abstract class ApiReq implements LRequest {
    private String requestID;
}

响应体

@Data
@JsonNaming(value = PropertyNamingStrategies.UpperCamelCaseStrategy.class)
public abstract class LBaseResp implements LResponse {

    @Schema(description = "请求ID")
    private String requestID;

    @Schema(description = "错误信息")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Error error;

}

这样做的好处:

这样的设计有以下几个好处:

  1. 代码复用与扩展性通过将ApiReq设计为抽象类,你可以定义所有API请求通用的属性和方法。任何具体的API请求类只需继承ApiReq类,就可以自动获得这些通用功能,同时还可以添加自己的特定功能。这种设计使得代码更加复用和模块化,也更容易扩展。

  2. 标准化的JSON命名:使用@JsonNaming注解确保了所有继承自ApiReq的类的JSON输出都将遵循大驼峰命名法。这有助于保持API的一致性和可预测性,使得前端或其他客户端更容易解析和理解返回的JSON数据。

  3. 简化代码:通过使用Lombok的@Data注解,你无需手动编写getter、setter、equals()hashCode()toString()等方法,这大大减少了代码量,并降低了出错的可能性。同时,这也让代码更加整洁和易于阅读。

  4. 接口实现:ApiReq类实现了LRequest接口,这意味着它承诺提供该接口定义的所有方法。这有助于确保所有API请求类都遵循相同的接口规范,从而使得代码更加一致和可维护。

  5. 灵活性:尽管requestID是一个私有属性,但由于它是抽象类的一部分,子类可以根据需要选择是否覆盖其getter和setter方法,或者添加额外的逻辑。这种设计提供了足够的灵活性,以适应不同的API请求需求。

综上所述,这样的设计结合了抽象类、接口、注解和Lombok库的优点,使得代码更加复用、模块化、一致和易于维护。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python项目练习-1

获取无忧书城的小说内容! import requests # 导入请求包 from lxml import etree # 导入处理xml数据包url https://www.51shucheng.net/wangluo/douluodalu/21750.html book_num 1 # 文章页数 download_urls [] # 定义一个空列表,表示我们下载过小…

提升你的C编程技能:使用cURL下载Kwai视频

概述 本文将介绍如何利用C语言以及cURL库来实现Kwai视频的下载。cURL作为一个功能强大的网络传输工具,能够在C语言环境下轻松地实现数据的传输。我们还将探讨如何运用代理IP技术,提升爬虫的匿名性和效率,以适应Kwai视频平台的发展趋势。 正…

《欢乐钓鱼大师》攻略,钓友入坑必备!

欢迎来到《欢乐钓鱼大师》!在这个游戏里,你可以尽情享受垂钓的乐趣,通过不断更换和升级高阶鱼竿,轻松地钓到各种稀有鱼类。因为许多玩家在挑战关卡时遇到了一些困难,所以今天我给大家带来了《欢乐钓鱼大师攻略指南》&a…

自动化机器学习流水线:基于Spring Boot与AI机器学习技术的融合探索

🧑 作者简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

【毕设绝技】基于 SpringCloud 的在线交易平台商城的设计与实现-数据库设计(三)

毕业设计是每个大学生的困扰,让毕设绝技带你走出低谷迎来希望! 基于 SpringCloud 的在线交易平台商城的设计与实现 一、数据库设计原则 在系统中,数据库用来保存数据。数据库设计是整个系统的根基和起点,也是系统开发的重要环节…

静态链接lib库使用

lib库实际上分为两种,一种是静态链接lib库或者叫做静态lib库,另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的,很多人都分不清楚,很容易混淆。 第一种是静态lib,包含了所有的代码实现的&am…

颠覆传统:机器人与AI大模型的结合,开启智能自动化的黄金时代!

引言:机器人技术与大模型的结合趋势 随着科技的迅速发展,机器人技术与大模型的结合已经成为必然趋势。这种结合不仅仅是技术的简单叠加,而是一种深层次的互补与融合,为机器人技术的应用开辟了新的可能性。大模型,能够…

02_c/c++开源库ZeroMQ

1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…

[Android]引导页

使用Kotlin Jetpack Compose创建一个左右滑动的引导页, 效果如图. 1.添加依赖项 androidx.compose.ui最新版本查询:https://maven.google.com/web/index.html com.google.accompanist:accompanist-pager最新版本查询:https://central.sonatype.com/ 确保在 build.gradle (M…

无人机+集群组网:机载自组网电台技术详解

无人机与集群组网的结合为现代通信带来了独特的优势。在集群组网中,每个节点(例如无人机)都兼具路由器和主机的功能,它们不仅可以运行各种面向用户的应用程序,还可以执行路由协议,根据路由策略和路由表完成…

基于SpringBoot + Vue实现的校园(通知、投票)管理系统设计与实现+毕业论文(12000字)+答辩PPT+指导搭建视频

目录 项目介绍 运行环境 技术栈 效果展示 论文展示 总结 项目介绍 本系统包含管理员、用户、院校管理员三个角色。 管理员角色:用户管理、院校管理、单位类别管理、院校管理员管理、单位管理、通知推送管理、投票信息管理、通知回复管理等。 用户角色&#…

2款README.md生成器

🏷️ readme-md-generator 确保你已经安装了npx (npx从npm 5.2.0开始默认安装) 执行命令 只需在项目的根目录下运行以下命令并回答问题: npx readme-md-generator 在项目根目录执行上面bash命令,结果: # npx readme-md-generator D:\vinc…

上新啦!讯飞首个支持长文本、长图文、长语音的大模型发布

IDC预测,全球数据信息产生和复制量将在2025年达到175ZB(1ZB相当于1万亿GB)。假设每个人的大脑功能记忆容量约为1.25TB,那么需要超过280亿个人脑来处理这些信息,相当于全球人口的4倍。 4月26日,讯飞星火V3.…

安卓NetworkStatsManager使用及demo

目录 一、TrafficStats类简介二、demo示例 一、TrafficStats类简介 TrafficStats Android API 8提供了android.net.TrafficStats类。 通过此类能获取设备重启以来网络信息,部分函数如下所示: static long getMobileRxBytes() //获取通过移动数据网络…

[C++]STL---unordered_set与unordered_map的模拟实现

目录 前言 哈希桶的改造 哈希桶的初步改造 迭代器的模拟实现 operator() 类互相typedef时的前置声明 友元声明 迭代器的出口 插入Insert() 查找Find() 哈希表的最终改造 unordered_set的模拟实现 unordered_map的模拟实现 前言 unordered_set与set的区…

嵌入式系统中的实时操作系统(RTOS)深入应用与优化

引言 实时操作系统(RTOS)在嵌入式系统中扮演着至关重要的角色,特别是在需要快速响应和高度可靠性的应用中。 我将探讨如何在STM32单片机上实现RTOS,包括任务管理、内存管理以及中断处理,以提高系统的效率和响应速度。…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 注&…

JavaScript+B/S架构云LIS系统源码C# 6.0+MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示

JavaScriptB/S架构云LIS系统源码MVCSQLSugar医院版检验科云LIS系统源码 可提供演示随着医疗技术的不断发展,医疗机构对于信息化、智能化的需求也越来越高。特别是对于检验科这样的核心科室,如何提高工作效率、降低误差率、提高数据安全性成为了亟待解决的…

2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试,包含安全生产监管人员考试技巧答案和解析及安全生产监管人员模拟考试练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲…

Type-C接口取电IC6500:优势与应用场景的深度解析

Type-C接口PD芯片取电IC的优势 随着科技的不断进步和移动设备在日常生活中的广泛应用,充电技术的革新变得愈发重要。Type-C接口PD芯片取电IC作为现代充电技术的关键组件,其优势日益凸显,为移动设备充电带来了革命性的改变。本文将深入探讨Ty…
最新文章