获取405-Swagger中不允许的方法(Spring Boot)

vawmfj5a  于 2022-10-04  发布在  Spring
关注(0)|答案(1)|浏览(381)

在Postman中测试GET方法时,我收到了一个405-方法不允许的错误。在浏览器中,当尝试使用swagger-ui时,我收到一个白色标签错误页。

我使用的是Java 17,Spring Boot 2.7.3,我使用的是Swagger 3.0。

这是Swagger配置。我不得不删除@Configuration,因为在使用该注解时,Spring Boot无法启动,而DocumentationType.OAS_30在这里,而不是SWAGGER_2,因为我使用的是Swagger 3.0。

package hr.ogcs.blueprint;

import org.springframework.context.annotation.Bean;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30).select()
                .apis(RequestHandlerSelectors.basePackage("hr.ogcs.blueprint"))
                .paths(PathSelectors.any()).build();
    }
}

这是Gradle的配置。我尝试使用springfox-boot-starter依赖项,但Spring Boot无法启动它。因此,我添加了swagger2swagger-ui依赖项。

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'io.springfox:springfox-swagger2:3.0.0'
    implementation 'io.springfox:springfox-swagger-ui:3.0.0'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

o8x7eapl

o8x7eapl1#

这里有一个解决方案:

为了解决这个问题,我放弃了Springfox库,而使用了另一个名为SpringDoc的库。Springfox显然仍然不能在Swagger 3.0上运行,所以从你的Gradle中删除以下内容:

implementation 'io.springfox:springfox-swagger2:3.0.0'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'

解决办法很简单。改用这个依赖项,一切都会像魔咒一样工作:

`implementation` 'org.springdoc:springdoc-openapi-ui:1.6.11'

您不需要任何额外的Swagger配置文件或任何注解。现在转到http://localhost:8080/swagger-ui.html查看结果。

我在Baeldung跟踪了this tutorial

相关问题