我现有的项目是基于Spring框架的,而不是Spring Boot。
我想把Open API 3和它集成在一起。
我想使用springdoc-openapi进行集成,而不是使用Jersey。
发布于 2021-01-04 12:34:17
使用springdoc-openapi-ui 1.5.2加载spring-mvc (5.3.1)的ui看起来更简单:
build.gradle (Gradle6.5版)
implementation 'org.springdoc:springdoc-openapi-ui:1.5.2'springdoc:springdoc-openapi-ui:1.5.2已经有了它们(版本2.4.0),所以在依赖项一节中不需要spring-boot-autoconfigure和spring-boot。您将会惊讶地发现,最终应用程序中将添加多少个依赖项和哪些依赖项。
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"/>要检查的urls:
http://localhost:8080/your_context_path/swagger-ui.html
http://localhost:8080/your_context_path/v3/api-docs发布于 2020-01-23 22:17:33
即使你的应用程序没有使用spring (spring-boot),它也应该可以工作。您需要添加在spring-boot中原生提供的bean和依赖项自动配置。
您主要需要添加springdoc-openapi模块并扫描spring-boot自动为您加载的springdoc自动配置类。根据您的模块,您可以在每个springdoc-openapi模块的文件:spring.factories中找到它们。
例如,假设您想要在spring-mvc应用程序中加载swagger-ui,并且您正在使用spring.version=5.1.12.RELEASE,并且您
您可以添加以下依赖项:
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.2.28</version>
</dependency>如果您没有spring-boot和spring-boot-autoconfigure依赖项,则需要添加它们。注意spring.verion和spring-boot.version之间的兼容性矩阵。例如,在本例中(spring.version=5.1.12.RELEASE):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.1.11.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.1.11.RELEASE</version>
</dependency>在这种情况下,当我们想要加载spring-mvc的ui时,您将需要在您的一个配置类中添加以下内容:
@Import({ org.springdoc.core.SpringDocConfiguration.class,
org.springdoc.core.SpringDocWebMvcConfiguration.class,
org.springdoc.ui.SwaggerConfig.class,
org.springdoc.core.SwaggerUiConfigProperties.class,
org.springdoc.core.SwaggerUiOAuthProperties.class,
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration.class
})发布于 2020-09-11 04:00:45
您可以使用@Annotations来完成此操作
import io.swagger.v3.oas.annotations.OpenAPIDefinition;
import io.swagger.v3.oas.annotations.servers.Server;
import io.swagger.v3.oas.annotations.info.Info
@OpenAPIDefinition(info = @Info(title = "My REST API", version = "1.2.6",
description = "My OpenAPIDefinition description"),
servers = { @Server(url = "/my-api", description = "Default URL")})
public class OpenApiConfig { }Springdoc OpenAPI UI对Maven Central Repository的依赖性
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.6</version>
</dependency>Maven中央存储库:
https://stackoverflow.com/questions/59871209
复制相似问题