SpringBoot 引入 smart-doc 接口文档管理插件,以及统一接口返回

news2025/8/10 7:52:46

最近在将多个服务端项目的接口进行整合管理,原本使用的是Swagger接口文档管理插件,网上搜了一下类似的插件,发现这个smart-doc插件,似乎挺简约优雅的,而且还可以推送接口文档到Torna,进行统一管理,这功能相当不错。

一、引入smart-doc接口文档管理插件

1、引入插件

pom.xml

<!-- 引入 smart-doc 插件 -->
<plugin>
    <groupId>com.github.shalousun</groupId>
    <artifactId>smart-doc-maven-plugin</artifactId>
    <version>2.2.7</version>
    <configuration>
        <!-- 指定生成文档使用的配置文件 -->
        <configFile>./src/main/resources/smart-doc.json</configFile>
        <projectName>欢迎使用 Smart-Doc~</projectName>
    </configuration>
</plugin>
<!-- / 引入 smart-doc 插件 -->

2、新建接口文档配置文件

smart-doc.json

{
  "serverUrl": "http://127.0.0.1:8091",
  "isStrict": false,
  "allInOne": true,
  "createDebugPage": true,
  "style":"xt256",
  "allInOneDocFileName":"index.html",
  "outPath": "src/main/resources/static/doc",
  "packageFilters": "org.example.controller.*",
  "projectName": "欢迎使用 smart-doc ~"
}

3、新建静态资源配置文件

StaticResourceConfig.java

@Configuration
public class StaticResourceConfig extends WebMvcConfigurationSupport {

    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

        /* 配置 smart-doc 资源路径 */
        registry.addResourceHandler("/doc/**").addResourceLocations("classpath:/static/doc/");
        /* / 配置 smart-doc 资源路径 */
    }
}

4、APP配置文件

application.yml

server:
  port: 8091

spring:
  application:
    name: "帅龍之龍"

logging:
  level:
    org.example.scheduled: DEBUG
  file:
    name: log/app.log
  charset:
    console: utf-8

二、统一接口返回

1、新建统一接口返回类文件

Result.java

package org.example.pojo.response;

public class Result <T> {

    /**
     * 响应状态
     * @since 1.0.0
     */
    private boolean success = true;

    /**
     * 错误码
     * @since 1.0.0
     */
    private int errno = 0;

    /**
     * 响应消息
     * @since 1.0.0
     */
    private String msg;

    /**
     * 响应数据
     * @since 1.0.0
     */
    private T data;

    public Result(boolean success, String msg) {
        this.success = success;
        this.msg = msg;
    }

    public Result(boolean success, String msg, T data) {
        this.success = success;
        this.msg = msg;
        this.data = data;
    }

    public Result(boolean success, int errno, String msg) {
        this.success = success;
        this.errno = errno;
        this.msg = msg;
    }

    public Result(boolean success, int errno, String msg, T data) {
        this.success = success;
        this.errno = errno;
        this.msg = msg;
        this.data = data;
    }

    public boolean getSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public int getErrno() {
        return errno;
    }

    public void setErrno(int errno) {
        this.errno = errno;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    @Override
    public String toString() {
        return "Result{" +
                "success=" + success +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}

2、新建用户视图类

UserDto.java

import lombok.Data;
import java.util.Date;

@Data
public class UserDto {

    /**
     * 用户ID
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 用户密码
     */
    private String password;

    /**
     * 用户地址
     */
    private String address;

    /**
     * 用户年龄
     */
    private int userAge;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 创建时间
     */
    private Date createTime;
}

3、新建用户信息管理控制器

UserManageController.java

/**
 * 用户管理模块
 */
@RestController
@RequestMapping(value = "api")
public class UserManageController {

    /**
     * 根据用户ID查询用户信息
     * @author 帅龍之龍
     * @param userId 用户ID 示例:5201314
     * @return
     */
    @GetMapping(value = "getUserById")
    public Result getUserById(@RequestParam(value = "userId", defaultValue = "10001") Long userId) {
        UserDto userDto = new UserDto();
        userDto.setId(userId);
        userDto.setUsername("帅龍之龍");
        userDto.setPassword("123456");
        userDto.setUserAge(25);
        userDto.setPhone("134****3051");
        userDto.setCreateTime(new Date());
        userDto.setAddress("地球村");
        return new Result(true, "getUserById 成功", userDto);
    }
}

三、参考
https://blog.csdn.net/shalousun/article/details/101865769
https://blog.csdn.net/pastxu/article/details/124531612

四、效果

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

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

相关文章

2023-2028年中国硅碳负极材料行业市场预测与投资规划分析报告

本报告由锐观咨询重磅推出&#xff0c;对中国硅碳负极材料行业的发展现状、竞争格局及市场供需形势进行了具体分析&#xff0c;并从行业的政策环境、经济环境、社会环境及技术环境等方面分析行业面临的机遇及挑战。还重点分析了重点企业的经营现状及发展格局&#xff0c;并对未…

kafka学习(七):消息队列与JMS

1、消息队列 我们可以把消息队列比作是一个存放消息的容器&#xff0c;当我们需要使用消息的时候可以取出消息供自己使用。 1.1、消息队列有什么用&#xff1f; 消息队列是分布式系统中重要的组件&#xff0c;使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统…

MCE | 神经元为胰腺癌细胞提供营养

胰腺导管腺癌 (PDAC) &#xff0c;最常见的胰腺癌 (Pancreatic cancer) 类型 &#xff0c;是最致命的实体肿瘤之一&#xff0c;具有很高的侵袭性。PDAC 治疗的不良预后与其独特而复杂的微环境和代谢可塑性有关。PDAC 的肿瘤微环境 (TME) 主要成分是细胞外基质 (ECM)、脉管系统、…

tensorflow2 MobileNet

简介 深度学习的发展伴随着模型参数的暴涨&#xff0c;导致对运行模型的设备有很大的限制&#xff0c;普通的卷积神经网络模型难以运用到移动或嵌入式设备中&#xff0c;主要是这些设备的内存有限&#xff0c;其次这些设备的算力不能满足足够的响应速度&#xff0c;即实时性差…

[附源码]java毕业设计疫情期间回乡人员管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Swin Transformer目标检测实验——环境配置的步骤和避坑

Swin Transformer1. 网上基础教程&#xff08;带视频讲解&#xff09;2. 配置虚拟环境时遇到的一些问题&#xff08;按操作顺序排列&#xff09;1. 网上基础教程&#xff08;带视频讲解&#xff09; 大家是不是都从b站来的呀&#xff0c;先给你们基础环境的配置和搭配的视频教…

【SQLite】三、SQLite 的常用语法

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲…

[论文阅读笔记18] DiffusionDet论文笔记与代码解读

扩散模型近期在图像生成领域很火, 没想到很快就被用在了检测上. 打算对这篇论文做一个笔记. 论文地址: 论文 代码: 代码 0. 扩散模型简述 首先介绍什么是扩散模型. 我们考虑生成任务, 即encoder-decoder形式的模型, encoder提取输入的抽象信息, 并尝试在decoder中恢复出来. 扩…

亚马逊鲲鹏系统:批量注册亚马逊买家号软件

之前我们有谈到过&#xff0c;想要注册亚马逊买家号&#xff0c;需要邮箱、ip、信用卡、收货地址和手机号。自己手动注册一个一个的太麻烦&#xff0c;还会花费大量的时间&#xff0c;那么有没有可以节约时间的自动化操作软件呢&#xff1f;想要自动化操作软件&#xff0c;来试…

金属带宽度测量方案

一、硬件部分 1.相机 像素&#xff1a;4864*3232 相机选择 1600 万像素即 4864*3232&#xff0c;即检测视场长宽比为 3&#xff1a;2 工件最大的直径为 320mm&#xff0c;假设检测的视场范围为 510*340 因 此 每 个 像 素 大 小 为 340mm/32800.104mm &#xff0c; 即 检 测 精…

数组形式的整数加法

1 问题 整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。 例如&#xff0c;对于 num 1321 &#xff0c;数组形式是 [1,3,2,1] 。 给定 num &#xff0c;整数的 数组形式 &#xff0c;和整数 k &#xff0c;返回 整数 num k 的 数组形式 。 2 方法 根据问题的描述…

ROS中使用protoBuf通信

ROS自身话题也挺好的&#xff0c;不过暂时还不知道如何判断网络&#xff0c;因此&#xff0c;还是想换回tcp/udp通信。 但是发现通信时数据比较多&#xff0c;调查一下&#xff0c;发现ROS支持google的protoBuf。 先建立一个ROS的项目&#xff0c;方便后面我们测试。 然后建立…

疫情物资储藏库建设规划问题,使用matlab+cplex+yalmib求解

疫情物资储藏库建设规划问题&#xff0c;使用matlabcplexyalmib求解一、Cplex安装及配置二、yalmib安装及配置三、案例分析一、Cplex安装及配置 一、安装Cplex Cplex 是一款商业化的规划问题求解器&#xff0c;支持python和matlab等常用语言&#xff0c;功能非常强大。可以根据…

19 0A-检索服务器支持的所有DTC的状态

诊断协议那些事儿 诊断协议那些事儿专栏系列文章&#xff0c;19服务作为UDS中子功能最多的服务&#xff0c;一共有28种子功能&#xff0c;本文将介绍常用的19 0A服务&#xff1a;检索服务器支持的所有DTC的状态。此子功能不论DTC是否发生、状态如何&#xff0c;都让ECU返回所有…

1533_AURIX_TriCore内核架构_指令集信息

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 学习的顺序有一点调整&#xff0c;切换到了内核的第二卷。先了解一下指令集的基本信息。第二卷主要就是讲指令集以及扩展的&#xff0c;而且基本上只…

RSA加密算法Python实现

RSA加密算法Python实现1.RSA算法简介2.RSA算法涉及的数学知识2.1互素2.2 欧拉定理2.3求模逆元2.4 取模运算2.5 最大公因数2.6 最小公倍数2.7 欧几里得算法2.8 扩展欧几里得算法3.RSA算法数学实现3.1理论3.2实践4.RSA算法代码实现4.1RSA算法代码实现14.1RSA算法代码实现21.RSA算…

STP、RSTP、MSTP

STP、RSTP、MSTP的配置 本篇介绍STP、RSTP、MSTP的配置和常用的管理命令。 STP/RSTP/MSTP简介 以太网中为了进行链路备份&#xff0c;提高网络可靠性&#xff0c;通常会使用冗余链路&#xff0c;但是这也带来了网络环路的问题。网络环路会引发广播风暴和MAC地址表振荡等问题…

连续仨月霸占牛客榜首,京东 T8 呕心沥血神作:700 页 JVM 虚拟机实战手册

虚拟机是一种抽象化的计算机&#xff0c;通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java 虚拟机有自己完善的硬体架构&#xff0c;如处理器、堆栈、寄存器等&#xff0c;还具有相应的指令系统。JVM 屏蔽了与具体操作系统平台相关的信息&#xff0c;使得 Java 程序只…

基于结构应力方法的焊接结构疲劳评估及实例分析(下篇)

作者 | 裴宪军 &#xff0c;仿真秀专栏作者 一、写在文前 焊接技术作为现代制造业中的支柱技术之一&#xff0c;是制造强国的关键保障。由于其整体性强、轻量化、经济性好等优点&#xff0c;焊接结构被广泛应用于轨道交通、航空航天&#xff0c;船舶、重型装备等领域&#xf…

LinkedIn领英开发客户方法大全(篇一)

一、准备工作 &#xff08;绝对不能小看准备工作&#xff01;&#xff01;&#xff01;&#xff01;所以我写的很详细&#xff01;&#xff01;&#xff01;&#xff09; 1.建议大家使用网页版的领英开发客户&#xff0c;并且界面语言要切换为英文&#xff01;&#xff01; 领…