我现有的项目位于Spring Framework而非Spring Boot上。

我想将Open API 3与之集成。

我想使用springdoc-openapi而不使用Jersey进行集成。

最佳答案

使用springdoc-openapi-ui 1.5.2的spring-mvc(5.3.1)的ui加载看起来更简单:
build.gradle(gradle版本6.5)

implementation 'org.springdoc:springdoc-openapi-ui:1.5.2'
依赖项部分没有明确需要spring-boot-autoconfigure和spring-boot,因为org.springdoc:springdoc-openapi-ui:1.5.2已经拥有了两者(版本2.4.0)。
您会惊讶于最终应用程序中将添加多少以及哪些依赖项。
OpenApiConfig.java
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"org.springdoc"})
@Import({org.springdoc.core.SpringDocConfiguration.class,
         org.springdoc.webmvc.core.SpringDocWebMvcConfiguration.class,
         org.springdoc.webmvc.ui.SwaggerConfig.class,
         org.springdoc.core.SwaggerUiConfigProperties.class,
         org.springdoc.core.SwaggerUiOAuthProperties.class,
         org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class})

class OpenApiConfig implements WebMvcConfigurer {
}
组件扫描应涵盖OpenApiConfig软件包。
如果使用Spring Security,则可以添加两个URL模式,并在代码中定义OpenAPI页面访问的角色。
<security:intercept-url pattern="/swagger*/**" access="ROLE_DEVELOPER"/>
<security:intercept-url pattern="/v3/api-docs" access="ROLE_DEVELOPER"/>
要检查的网址:
http://localhost:8080/your_context_path/swagger-ui.html
http://localhost:8080/your_context_path/v3/api-docs

09-27 00:38