springdoc-openapi-ui 整合 knife,多模块分组,脚手架

news/2025/1/3 5:11:11/

 pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.2</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>2023_demo</name><description>2023_demo</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.11</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-springdoc-ui</artifactId><version>3.0.3</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build><repositories><repository><id>aliyun-repo</id><name>aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository></repositories></project>

yum文件:

server:port: 18080springdoc:swagger-ui:enabled: true # 开关doc-expansion: none  #关闭展开api-docs:enabled: true # 开关

swagger配置文件

package com.example.demo.config;import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.info.Info;
import io.swagger.v3.oas.models.parameters.Parameter;
import org.springdoc.core.GroupedOpenApi;
import org.springdoc.core.customizers.OperationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** @description* @author * @since 2023/8/31*/
@Configuration
@OpenAPIDefinition(info = @Info(title = "springDoc + knife 集成测试", version = "1.0",description = "swagger基础项目脚手架")
)
public class SwaggerConfig {@Beanpublic GroupedOpenApi usercApi() {return GroupedOpenApi.builder().group("用户管理").packagesToScan("com.example.demo.system").pathsToMatch("/**").build();}@Beanpublic GroupedOpenApi biApi(OperationCustomizer operationCustomizer) {return GroupedOpenApi.builder().group("报表管理").packagesToScan("com.example.demo.bi").pathsToMatch("/**").addOperationCustomizer(operationCustomizer).build();}@Beanpublic OperationCustomizer operationCustomizer() {return (operation, handlerMethod) -> operation.addParametersItem(new Parameter().in("header").required(true).description("token 验证").name("token"));}//    @Bean
//    public OpenApiCustomiser customerGlobalHeaderOpenApiCustomise() {
//        Parameter passwordParameter = new Parameter().name("password").description("密码").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
//        Parameter usernameParameter = new Parameter().name("username").description("用户名").in(ParameterIn.QUERY.toString()).schema(new Schema<>().type("string"));
//        ApiResponse apiResponse = new ApiResponse().content(new Content().addMediaType("*/*", new MediaType()));
//        PathItem pathItem = new PathItem().post(new Operation().summary("登录").tags(CollUtil.newArrayList("system/auth")).description("系统管理/鉴权接口").responses(new ApiResponses()
//                        .addApiResponse("default", apiResponse))
//                .parameters(CollUtil.newArrayList(usernameParameter, passwordParameter)));
//        return openApi -> openApi.path("/auth/login", pathItem);
//
//    }
}

访问swagger-ui:

访问doc.html: http://localhost:18080/doc.html


http://www.ppmy.cn/news/1077782.html

相关文章

5 大虚拟数字人工具:视频内容创作的未来

人工智能&#xff08;AI&#xff09;给视频内容创作领域带来了一场革命。这一领域的显着进步之一是人工智能生成的会说话的化身的出现&#xff0c;它已经成为制作高质量视频的游戏规则改变者&#xff0c;而无需专业演员或昂贵的视频编辑软件。在这篇博文中&#xff0c;我们将深…

生成式人工智能能否使数字孪生在能源和公用事业行业成为现实?

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 克服障碍&#xff0c;优化数字孪生优势 要实现数字孪生的优势&#xff0c;您需要数据和逻辑集成层以及基于角色的演示。如图 1 所示&#xff0c;在任何资产密集型行业&#xff08;如能源和公用事业&#xff09;中&…

2023最新 Electron.js 桌面应用开发教程(基础篇)更新中

Electron是什么&#xff1f; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux Electron Fiddle 运行实例 Ele…

【LeetCode】84.柱状图中最大的矩形

题目 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heights [2,1,5,6,2,3] 输出&#xff1a;10 解释&#xff1a;最大的…

Bytebase 2.7.0 - ​新增分支(Branching)功能

&#x1f680; 新功能 新增支持与 Git 类似的分支&#xff08;Branching&#xff09;功能来管理 schema 变更。支持搜索所有历史工单。支持导出审计日志。 &#x1f384; 改进 变更数据库工单详情页面全新改版。优化工单搜索体验。SQL 审核规则支持针对不同数据库进行独立配…

CRM软件排行榜靠前的都有哪些特点?

CRM软件是企业管理客户关系的重要工具&#xff0c;它可以帮助企业提高销售效率、增强客户满意度、提升市场竞争力。在众多的CRM软件中&#xff0c;排名靠前的CRM软件有哪些&#xff1f; 1、功能全面 Zoho CRM提供了从销售、营销、客服到AI人工智能、BI数据分析再到定制开发等…

Leetcode110. 平衡二叉树

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 题解&#xff…

代码随想录笔记--字符串篇

目录 1--反转字符串 2--反转字符串II 3--反转字符串中的单词 4--KMP算法 5--重复的子字符串 1--反转字符串 主要思路&#xff1a; 双指针算法&#xff0c;交换两个指针的字符&#xff1b; #include <iostream> #include <vector>class Solution { public:void…