Spring Boot 3.x 整合Swagger3 教程(spingdoc-openapi)以及swagger ui页面无法访问
·
概述
自己在学习配置Swagger3的时候发现网上的教程讲得都很复杂,所以说自己做一份教程帮助大家解决这个问题。那废话不多说尽量以最精简的语言教会大家最基本的配置(结合项目可能会有很多复杂的情况所以这篇文章仅适合新手入门的小白学习使用)
IDEA版本:2024.2.0.1
Java版本:17
SpringBoot:3.3.2
配置信息如下:
pom.xml
区别于使用springfox-swagger2,好像在SpringBoot 2.6.x之后,SpringBoot与Swagger就出现已知的不兼容问题,所以用spingfox那个配置的小伙伴很可能会在启动项目时发生报错。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>
SwaggerConfig.java
package com.example.helloworld.config;
import io.swagger.v3.oas.models.ExternalDocumentation;
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 SwaggerConfig {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("Spring Boot 中使用 Swagger UI 构建 RESTful API")
.contact(new Contact())
.description("Sun提供的 RESTful API")
.version("v1.0.0")
.license(new License().name("Apache 2.0").url("http://springdoc.org")))
.externalDocs(new ExternalDocumentation()
.description("外部文档")
.url("https://springshop.wiki.github.org/docs"));
}
}
Controller.java
要确保 Swagger UI 能够显示你的 API 文档,至少需要一个用 @RestController 或 @Controller 注解的控制器类,并在其中定义一些 API 端点。(只是怕有些人没有控制类就去访问Swagger)
application.properties
两个路径,一个是显示请求到的Json文件内容的路径,一个是显示UI界面的路径
我的端口号是8080,如果不使用默认的话可以在这里配置自己相应使用的端口号
springdoc.api-docs.path=/v3/api-docs
springdoc.api-docs.enabled=true
springdoc.swagger-ui.path=/swagger-ui.html
springdoc.swagger-ui.enabled=true
Application启动类
这里提一嘴,可以添加一个@OpenAPIDefinition注解,虽然不是必须的,但如果你想自定义 API 文档的元数据(如标题、描述、版本等),可以使用这个注解。
大功告成
参考我的:在浏览器输入http://localhost:8080/....(自己配置的地址)就可以请求到json文件内容和Swagger UI界面了
有可能在做完所有的配置之后还会出现访问失败,把项目缓存清理之后重启项目就好了!


更多推荐




所有评论(0)