SpringBoot中springdoc-openapi自定义Swagger标题等信息的方法
在springdoc-openapi中自定义Swagger文档信息
要访问Swagger UI,添加以下Maven依赖即可:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.6.0</version> </dependency>
在springdoc-openapi里,不需要Springfox的Docket,而是通过创建OpenAPI类型的Bean来实现文档信息的自定义,具体配置方式如下:
基础文档信息自定义
创建一个配置类,定义OpenAPI Bean就能设置标题、描述、版本、联系人等核心信息:
import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.info.Contact; import io.swagger.v3.oas.models.info.Info; import io.swagger.v3.oas.models.info.License; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OpenApiConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .info(new Info() .title("电商平台API文档") .description("涵盖用户、订单、商品全业务流程的RESTful接口说明") .version("v1.5.0") .contact(new Contact() .name("电商技术组") .email("dev@ecommerce.com")) .license(new License() .name("MIT License") .url("https://opensource.org/licenses/MIT"))); } }
拓展配置:多环境服务器地址
如果需要给文档添加不同环境的服务器地址(比如开发、生产),直接在OpenAPI里追加Server配置即可:
import io.swagger.v3.oas.models.servers.Server; // 其他导入同上 @Configuration public class OpenApiConfig { @Bean public OpenAPI customOpenAPI() { // 开发环境服务器 Server devServer = new Server(); devServer.setUrl("http://localhost:8080"); devServer.setDescription("开发环境 - 本地调试用"); // 生产环境服务器 Server prodServer = new Server(); prodServer.setUrl("https://api.ecommerce.com"); prodServer.setDescription("生产环境 - 正式接口地址"); return new OpenAPI() .addServersItem(devServer) .addServersItem(prodServer) .info(new Info() .title("电商平台API文档") .version("v1.5.0")); } }
springdoc-openapi完全贴合OpenAPI规范,用OpenAPI及其内部的模型类(Info、Contact等)替代了Springfox的Docket,所有你之前用Docket实现的自定义操作,都能通过这种方式完成。
内容的提问来源于stack exchange,提问作者Music
相关产品推荐
相关产品推荐

