当前位置: 首页 > 知识库问答 >
问题:

无法用spring boot加载Swagger-UI

江雅懿
2023-03-14

我试图使用Swagger动态地记录我的SpringBoot应用程序的REST API。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <java.version>1.8</java.version>
        <main.basedir>${basedir}/../..</main.basedir>
        <ing.continuous-delivery.version>00.04.04</ing.continuous-delivery.version>
        <maven.assembly.version>2.3</maven.assembly.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>1.5.3.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>

        <!-- tag::spring -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
        <!-- end::spring -->

        <!-- tag::web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
            <version>1.5.3.RELEASE</version>
        </dependency>
        <!-- end::web -->

        <!--  tag::swagger -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.6.1</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.6.1</version>
        </dependency>
        <!--  end:: swagger -->
    </dependencies>

</project>
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.setUseSuffixPatternMatch(false);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

}
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        httpSecurity.authorizeRequests().antMatchers("/**", "/swagger-resources").permitAll();
        httpSecurity.csrf().disable();
        httpSecurity.headers().frameOptions().disable();
    }
}

霸气配置:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any()).build();
    }
}

谢谢你的帮助!

共有1个答案

闻人昕
2023-03-14

我对英语不好,这就是为什么谷歌。

现在spingdoc已经出现了,它实现了openapi3,它提供了相同的预期功能,并且使用它更容易,在对另一个问题的回答中,我已经解释了如何做到这一点,以及如何使用java注释自定义api的信息

SpringDoc基于OpenAPI3规范,为Spring Boot1.x和2.x应用程序简化了API文档的生成和维护。



    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.2.32</version>
    </dependency>

对于Swagger:http://localhost:8080/swagger-ui.html

仅此而已。

 类似资料:
  • 嗨,我正在使用springboot 1.5.3。大摇大摆地释放。当我运行应用程序时,我可以通过访问“localhost:3030/v2/api文档”来访问json swagger响应。但我无法访问“localhost:3030/swagger ui.html”,同时显示未找到“/swagger ui.html”的映射。我如何解决这个问题。 依赖关系 招摇过市配置

  • 以下是错误消息 java.lang.IllegalStateException:无法加载ApplicationContext 一个使用elasticSearch、mysql、redis等的Spingboot项目,谷歌有很多,但他只是一个新的Spingboot。网上的东西不管用。我不知道怎么改。 application-local.yml 应与ES的配置相关 控制器

  • 带Springdoc的Spring Boot 2.6.3。 在,当我将路径设置为/v3/api docs或将其删除时,这意味着使用默认路径“/v3/api docs”。Swagger UI页面与API一起正确显示http://localhost:8080/swagger-用户界面/索引。html 但我想覆盖下面的路径 然后SwaggerUI显示"加载远程配置失败"错误:

  • 我留下了一个悬而未决的问题 我试图创建一个自定义代码,我设法使它的工作通过把文件内的代码项目,但我希望它的工作方式如下:https://github.com/swagger-api/swagger-codegen#making-your-own-codegen-modules 我根本没有修改自动生成的项目,但我一直得到: 这是命令行: 我从这里拿到了瓶子https://mvnrepository.

  • Springboot 2.5.13,swagger2:实现" io . spring fox:spring fox-boot-starter:3 . 0 . 0 "实现" io . spring fox:spring fox-swagger-ui:3 . 0 . 0 " 运行时错误:无法解析名为“forward:/swagger ui/index.html”的视图

  • swagger-config.yaml app.js