首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springfox配置问题

Springfox配置问题
EN

Stack Overflow用户
提问于 2016-07-21 17:34:19
回答 1查看 2.8K关注 0票数 5

我有一个应用程序,它使用Spring来处理REST调用,控制器是REST控制器,带有@RestController注释,控制器及其方法使用@RequestMapping注释。

我试图添加Swagger来为现有的REST服务生成文档。我试图把它添加到一个测试中,看看它是什么样子的。我添加了springfoxui库,在spring context xml文件中添加了swagger配置类和bean定义。我可以点击swagger-ui.html链接,但它根本没有生成任何文档。由于文档稀少,我不知道自己做错了什么或者配置错了什么,而在Googling上搜索这个问题不会产生任何有用的结果。

有人能就我可能做错了什么提供一些建议吗?或者说,可以提供一些比我目前发现的更好的文档吗?

我在pom文件中添加了springfox-swagger2 2和关联的ui条目,并将以下内容添加到我的spring文件中,并为这些类添加了两个新的bean定义:

代码语言:javascript
复制
 @Configuration
@EnableSwagger2
public class ApplicationSwaggerConfig {

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

}

@EnableWebMvc
public class SwaggerConfiguration extends WebMvcConfigurerAdapter {

    @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/");
    }

}

我尝试过在spring的第二个类中定义bean,但这也不起作用。我很困惑。我已经做了文档上说要做的事情,但它不起作用。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-08 01:16:58

springfox文档是可用的这里。从您的帖子中可以看出,您可能需要执行以下操作

代码语言:javascript
复制
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {

            registry.addRedirectViewController("/documentation/v2/api-docs", "/v2/api-docs?group=restful-api");
            registry.addRedirectViewController("/documentation/swagger-resources/configuration/ui","/swagger-resources/configuration/ui");
            registry.addRedirectViewController("/documentation/swagger-resources/configuration/security","/swagger-resources/configuration/security");
            registry.addRedirectViewController("/documentation/swagger-resources", "/swagger-resources");
    }

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

注意:如果您有spring引导应用程序,这是不需要的。

  • 确保您使用的是最新的库版本(在撰写本文时是2.6.0)
  • 验证您是否可以在http(s)://your-host/context-path/v2/api-docs上看到swagger服务描述
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38510799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档