springboot2.2.X手册:构建多元化的API接口,我们这样子设计

2024-06-18 01:48

本文主要是介绍springboot2.2.X手册:构建多元化的API接口,我们这样子设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

springboot2.2.X手册:构建多元化的API接口,我们这样子设计

 

无规矩不成方圆,任何一个软件,如果刚开始没有定义好规范,任由各个开发进行按照自己的喜好进行开发,后面运维的兄弟,估计整天就要骂娘了。

开发一时爽,运维火葬场,运维一个软件,往往比开发一个软件要辛苦好多,毕竟很多时候,运维都要从不明白需求,不理解系统架构,不理解数据结构的0开始。

今天来做一个定义多业务的接口规范,考虑到每家企业的业务不一样,只提供参考


目录

定义多业务接口

统一接口消息体

定义全局异常

构建拦截的信息体

整合swagger接口可视化

运行


 

springboot2.2.X手册:构建多元化的API接口,我们这样子设计

 

 

定义多业务接口

在后端的服务中,我们的服务只会提供API接口,以便提供数据,根据业务需求,我们把接口分为三类

1、后端系统服务接口view,主要提供给后台管理系统使用,面向B端

2、前端系统服务接口application,主要提供给小程序,H5使用,面向C端

3、第三方服务接口external,主要提供给第三方使用

 

springboot2.2.X手册:构建多元化的API接口,我们这样子设计

 

 

统一接口消息体

/*** 消息影响实体* @author:溪云阁* @date:2020年5月2日*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "响应类", description = "响应类")
public class ResponseMsg<T> {@ApiModelProperty(value = "响应状态", example = "00,成功;01,失败")private String respStatus;@ApiModelProperty(value = "响应描述", example = "例如:找不到用户信息")private Object respDesc;@ApiModelProperty(value = "响应实体")private T data;}

定义全局异常

1、统一异常

/*** 全局公共异常类* @author:溪云阁* @date:2020年5月2日*/
@Slf4j
public class CommonRuntimeException extends RuntimeException {private static final long serialVersionUID = 1L;@Setter@Getterprivate Object[] params;public CommonRuntimeException(Throwable e, Object... params) {super(e);this.params = params;}public CommonRuntimeException(Object... params) {this(null, params);}public CommonRuntimeException(Throwable e) {this(null, e);}public CommonRuntimeException() {}@Overridepublic String getMessage() {log.error("获取到的错误信息:{}", super.getMessage());log.error("获取到的错误内容:{}", super.fillInStackTrace());return super.getMessage();}/*** 重写fillInStackTrace 业务异常不需要堆栈信息,提高效率.* @author 溪云阁* @return*/@Overridepublic Throwable fillInStackTrace() {return this;}
}

2、统一异常处理

/*** 统一异

这篇关于springboot2.2.X手册:构建多元化的API接口,我们这样子设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070971

相关文章

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结