【问题标题】:Swagger UI not displaying nested restcontroller classSwagger UI 不显示嵌套的 restcontroller 类
【发布时间】:2017-07-12 08:26:49
【问题描述】:

我正在开发一个项目,首席开发人员将 RestController 类嵌套在其他类中。

swagger配置如下:

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

并且类定义遵循以下格式:

@Slf4j
public class SomeModule {

    @RestController @Transactional @RequiredArgsConstructor @RequestMapping(value="/a/b/c/something")
    public class Controller {   

        @PostMapping(value="/")
        public HttpEntity<Command> createSomething (@RequestBody CreateSomethingCommand command) {
            ...
        } 
        ...
    }
}   

Controller类从SomeModule类中取出时,swagger-ui正常显示。

但是,当它嵌套在另一个类中时,它就不起作用了。

【问题讨论】:

    标签: swagger swagger-ui springfox


    【解决方案1】:

    回答

    事实证明,特定的休息控制器甚至无法访问,因为它们嵌套在另一个类中。

    这会导致 @RestController 和 swagger 文档生成都静默失败。

    解决方案是使嵌套类静态!

    静态关键字解决问题:public static class Controller {

    参考

    【讨论】: