带有 swagger UI 的 Spring boot 给出空页面

问题描述 投票:0回答:2

我正在尝试使用 Swagger UI 来获取 API 文档,该文档是使用 Spring Boot 框架开发的。

1)pom 中的依赖

<dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${springfox-version}</version>
    </dependency>
    <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-core</artifactId>
        <version>${swagger-core-version}</version>
    </dependency>




<properties>

    <springfox-version>2.5.0</springfox-version>
    <swagger-core-version>1.5.10</swagger-core-version>

</properties>

2) 案卷配置

@ComponentScan(basePackages = {"com.testApp.*"})
@Configuration
@EnableSwagger2
public class Application {

 @Bean
    public Docket api() { 

      return  new Docket(DocumentationType.SWAGGER_2)  
                .select().apis(
                      RequestHandlerSelectors.any())
                      .paths(PathSelectors.any())                             
                      .build(); 

    }


public static void main(String[] args)  {
    SpringApplication.run(Application.class, args);
}

3)com.testApp包中的资源配置

 @Path("/resources")
 @Api(value = "Test resource", produces = "application/json")
 public class MyResource  {

 @Autowired
 public SomeClass someclass;

/**
 * 
 * @param uriInfo
 * @return
 * @throws PlatformException
 */
@ApiOperation(value = "Gets a hello resource. World Version 1 (version in Accept Header)", response = String.class)
@ApiResponses(value = {
    @ApiResponse(code = 200, message = "Hello resource found"),
    @ApiResponse(code = 404, message = "Hello resource not found")
})

@GET
@Produces({ MediaType.APPLICATION_JSON })
public String loadResouces(@Context UriInfo uriInfo)  {
    //method defination
}

此服务在端口 9001 上运行。每当点击 localhost:8080/swagger-ui.html 时。它返回 swagger-ui 的空页面。我尝试了 Docket 的一些属性,如主机、路径映射等。但我无法使用它生成文档。

spring-boot swagger swagger-ui
2个回答
0
投票

据我所知

springfox-swagger2
仅支持使用
Spring MVC
实现的 API。

如果您更喜欢使用

JAX-RS
实现端点,但仍然使用
Swagger
来记录它们,请查看 这个答案

可以在我之前创建的博客中找到“操作方法”,使用 Spring Boot、Jersey Swagger 和 Docker 的微服务


0
投票

我通过实现 TypeResolver 和 RequestMappingHandlerMapping beans 解决了类似的问题。 请尝试将以下 bean 添加到您的 Application 类中。

    @Bean
    public TypeResolver typeResolver(){
        return new TypeResolver();
    }

    @Bean
    public RequestMappingHandlerMapping requestMappingHandlerMapping(){
        return new RequestMappingHandlerMapping();
    }
© www.soinside.com 2019 - 2024. All rights reserved.