概述 使用 springdoc-openapi 可以快速为 springboot 项目生成规范的 API 文档,具体使用步骤如下: 依赖配置 在 pom.xml 加入内容,即可开始使用: <dependency > <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version API Test") .description("SpringDoc Simple Application Test") 的理由如下: springdoc-openapi 是 spring 官方出品,与 springboot 兼容更好(springfox 兼容有坑) springdoc-openapi 社区更活跃,springfox 已经 2 年没更新了 springdoc-openapi 的注解更接近 OpenAPI 3 规范 综上所述,我个人还是更加推荐使用 springdoc-openapi 来自动化你项目的 API 文档
错误写法 接口测试执行按钮没反应 @PutMapping("/api/file") public String upload( MultipartFile file ) {} request body变为json格式 @PutMapping("/api/file") public String upload( @RequestPart("file") MultipartFile file ) {} 正确写法 @PutMapping("/api/fi
所有这些特性都是由Springdoc OpenAPI 库实现的。 <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-webmvc-core</artifactId 必须包含以下两个库才能为基于 Spring WebFlux 的响应式应用程序启用 Springdoc 支持。 <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-webflux-core</artifactId 在本文中,我向您展示了如何在具有网关模式的微服务架构中使用 Springdoc。
这里将介绍 springdoc-openapi-ui,它是 SpringBoot 基于 Open API 3.0(Swagger3.0) SpringFox 与 Swagger 的关系 Springfox 这里我就不在使用 Swagger2.x 版本 SpringDoc(推荐) SpringDoc 对应坐标是 springdoc-openapi-ui,它是一个集成 Swagger UI 和 ReDoc 的接口文档生成工具 而是通过 springdoc-openapi-ui 的 Maven 坐标。 springdoc-openapi-starter-webmvc-ui:目前最新版本是 2.6.0,适用于 Spring Boot 3.x 和 Spring Framework 6。 </groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.6.0
SpringDoc简介 SpringDoc是一款可以结合SpringBoot使用的API文档生成工具,基于OpenAPI 3,目前在Github上已有1.7K+Star,更新发版还是挺勤快的,是一款更好用的 值得一提的是SpringDoc不仅支持Spring WebMvc项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目,总之非常强大,下面是一张SpringDoc 使用 接下来我们介绍下SpringDoc的使用,使用的是之前集成SpringFox的mall-tiny-swagger项目,我将把它改造成使用SpringDoc。 --springdoc 官方Starter--> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui 参考资料 项目地址:https://github.com/springdoc/springdoc-openapi 官方文档:https://springdoc.org/ 项目源码地址 https:/
Swagger: Swagger官网 | Swagger官方Github主页 | Swagegr Core Github | Swagger 官方WIKI SpringDoc: SpringDoc官网 | SpringDoc Github | springdoc-openapi Github 本文章Github仓库 前提 jdk17 SpringBoot3.1.1 SpringDoc2.1.0 为什么不继续使用 什么是SpringDoc? springdoc-openapiJava 库有助于使用 Spring 引导项目自动生成 API 文档。 springdoc.auto-tag-classes true Boolean.禁用 springdoc-openapi 自动标记。 springdoc.api-docs.groups.enabled true Boolean.禁用 springdoc-openapi 组。
为何选择SpringDoc OpenAPI? 依赖 <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId =/swagger-ui.html springdoc.swagger-ui.operationsSorter=alpha springdoc.swagger-ui.tagsSorter=alpha springdoc.swagger-ui.doc-expansion 的缓存(开发环境): springdoc.cache.disabled=true 结语 通过本文,你已完成了从Springfox到SpringDoc的完整迁移。 SpringDoc不仅解决了兼容性问题,还提供了更强大的功能。建议所有新项目直接采用SpringDoc,老项目逐步迁移。
无意中发现了另一款Swagger库SpringDoc,试用了一下非常不错,推荐给大家! SpringBoot实战电商项目mall(50k+star)地址:github.com/macrozheng/… SpringDoc简介 SpringDoc是一款可以结合SpringBoot使用的API 值得一提的是SpringDoc不仅支持Spring WebMvc项目,还可以支持Spring WebFlux项目,甚至Spring Rest和Spring Native项目,总之非常强大,下面是一张SpringDoc 使用 接下来我们介绍下SpringDoc的使用,使用的是之前集成SpringFox的mall-tiny-swagger项目,我将把它改造成使用SpringDoc。 --springdoc 官方Starter--> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui
SpringDoc OpenAPI3:自动化API文档生成的利器 SpringDoc的核心工作机制 SpringDoc OpenAPI3的核心价值在于其智能的运行时分析能力。 无缝的Spring Boot集成体验 SpringDoc与Spring Boot的集成堪称完美,这主要体现在以下几个方面: 零配置启动:只需添加相应的依赖,SpringDoc就能自动配置并开始工作。 随着Spring生态的不断发展,SpringDoc也在持续演进。 -- SpringDoc文档生成 --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui 渐进式升级:在升级Spring Boot主版本时,优先测试SpringDoc与OpenFeign的兼容性,并参考官方文档的版本映射表(如SpringDoc官网提供的兼容性矩阵)。
org.springframework.core.ResolvableType.hasUnresolvableGenerics(ResolvableType.java:548) ~[spring-core-5.3.23.jar:5.3.23] at org.springdoc.core.ReturnTypeParser.resolveType (ReturnTypeParser.java:87) ~[springdoc-openapi-common-1.6.15.jar:1.6.15] at org.springdoc.core.ReturnTypeParser.resolveType (ReturnTypeParser.java:93) ~[springdoc-openapi-common-1.6.15.jar:1.6.15] at org.springdoc.core.ReturnTypeParser.resolveType (ReturnTypeParser.java:93) ~[springdoc-openapi-common-1.6.15.jar:1.6.1 从上面标红部分可以断定是泛型类的类型确定不了,场景如下所示:
今天我们使用Knife4j来增强下它,使用的是SpringDoc提供的Swagger实现库,希望对大家有所帮助! SpringDoc SpringDoc是最近才流行起来的Swagger实现库,Github上标星2K+,版本更新还是很快的,维护更新有保障。之前写过一篇SpringDoc使用教程 大家可以参考下。 如果你的项目是新项目目前正在技术选型阶段可以考虑使用SpringDoc,毕竟更新维护更有保障。 SpringDoc结合Knife4j使用 Knife4j是一款Swagger UI增强库,之前一直以为它只支持SpringFox,最近发现它也支持了SpringDoc。 Knife4j可以无缝支持SpringDoc,仅需添加一个依赖即可,无需修改任何用法,非常方便!
本文将从 技术栈差异、升级迁移步骤、常见问题 等多个维度,解析 JDK 8(SpringFox)向 JDK 17(SpringDoc/Knife4j)的升级路径。 1.x✅✅❌✅❌SpringDoc 2.x❌✅✅✅✅3、快速升级步骤3.1 依赖管理升级移除旧依赖<! -- SpringDoc 核心 --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui 不需要:Knife4j OpenAPI3 基于 SpringDoc,无需配置 Docket 或 Swagger2Markup。 包扫描路径未覆盖(通过 @ComponentScan 或 springdoc.packagesToScan 配置)。
效果 文档页面上出现授权按钮 点击授权按钮输入客户端id,密码获取令牌 测试请求中自动携带令牌 版本 springboot 2.5.4 springdoc 1.5.10 依赖 <dependency > <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-webmvc-core</artifactId> <version>1.5.10</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId >springdoc-openapi-security</artifactId> <version>1.5.10</version> </dependency> 配置 @Bean public
由于我一开始学习的SpringBoot是3以上版本,所以我这里用到的也是支持和SpringBoot3能够整合的SpringDoc 这里先说一下,其实SpringDoc就是Swagger3版本,我一开始整合的 2版本,比较麻烦况且最后SpringBoot程序都启动不了了,后面查资料才看到SpringDoc,好使的一批!! 官网地址:http://springdoc.org 一、依赖配置 在上篇文章中用到的项目模块基础上进行! 有了SpringDoc就可以很好的自动生成和展示API文档了! 这样前后端分离就有已经有了雏形了,到时候再整合Mybatis就可以生成一个完整的API文档,就可以和前端分工明确了
SpringDoc也是 spring 社区维护的一个项目(非官方),帮助使用者将 swagger3 集成到 Spring 中。 ---- 从 spring-fox 迁移到 springdoc 依赖变更 pom.xml 里去掉 springfox 或者 swagger 的依赖。 添加springdoc-openapi-ui。 <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId ://springdoc.org/faq.html#how-can-i-deploy-the-doploy-springdoc-openapi-ui-behind-a-reverse-proxy.
1.5.10 应用服务 依赖 <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-webmvc-core </artifactId> <version>1.5.10</version> </dependency> <dependency> <groupId>org.springdoc</groupId > <artifactId>springdoc-openapi-security</artifactId> <version>1.5.10</version> </dependency> blog.csdn.net/zhoudingding")); } 效果 可通过/v3/api-docs访问API定义信息 网关服务 依赖 <dependency> <groupId>org.springdoc </groupId> <artifactId>springdoc-openapi-webflux-ui</artifactId> <version>1.5.10</version> </
SpringDoc SpringDoc也是 spring 社区维护的一个项目(非官方),帮助使用者将 swagger3 集成到 Spring 中。 添加springdoc-openapi-ui。 /faq.html#how-can-i-deploy-the-doploy-springdoc-openapi-ui-behind-a-reverse-proxy. 自定义 Swagger UI https://springdoc.org/faq.html#how-can-i-configure-swagger-ui. 在文档中隐藏某个接口或者 Controller https://springdoc.org/faq.html#how-can-i-hide-an-operation-or-a-controller-from-documentation
接口文档 由于Swagger依赖从SpringFox升级到了SpringDoc,原来的接口文档访问路径已经改变,最新访问地址:http://localhost:8080/swagger-ui/index.html 升级SpringDoc 由于之前使用的SpringFox提供的Swagger库,已经三年多没更新了,也不支持Spring Boot 3,所以我们需要迁移到能支持Spring Boot 3 的SpringDoc 我们需要修改项目的依赖,从SpringFox迁移到SpringDoc, <! --SpringDoc 官方Starter--> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui SpringFox SpringDoc @Api @Tag @ApiIgnore @Parameter(hidden = true)or@Operation(hidden = true)or@Hidden
首先我们要在pom.xml文件中添加SpringDoc的依赖库,如下: <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-spring-boot -2-webmvc</artifactId> <version>3.1.5</version> </dependency> 然后在SpringBoot的yml文件中,简单定义SpringDoc 的基本设置 springdoc: api-docs: enabled: true path: /doc-api.html swagger-ui: path: /swagger-ui.html 三、写个测试程序 我们随便定义一个Controller,然后声明Web方法,一会我们通过SpringDoc在线测试一下Web方法。 因为该Web方法没有设置授权和登陆验证,所以不需要输入Token令牌,直接可以测试,结果如下 可以看到Web方法成功运行了,这么看来利用SpringDoc来替代原始的Swagger,的确非常的简单
swaggerUiConfigParameters.addGroup(name); }); } } 源码分析 SWAGGER-UI获取配置信息的端点 org.springdoc.webflux.ui.SwaggerWelcomeActuator getSwaggerUiConfig(ServerHttpRequest request) { return super.getSwaggerUiConfig(request); } } org.springdoc.webflux.ui.AbstractSwaggerWelcome request.getPath().toString(), ""); buildConfigUrl(UriComponentsBuilder.fromUriString(url)); } } org.springdoc.webflux.ui.AbstractSwaggerWelcome swaggerUiConfigParameters.addUrl(apiDocsUrl); } calculateOauth2RedirectUrl(uriComponentsBuilder); } } org.springdoc.core.SwaggerUiConfigParameters