Swagger not detecting Api built with Spring Data Rest

后端 未结 5 1938
我在风中等你
我在风中等你 2021-01-19 18:10

I\'m working on a spring boot application using swagger to generate docs for my API ,I\'m using Spring data rest to generate the Api but when I run the app I get the swagger

5条回答
  •  天命终不由人
    2021-01-19 18:38

    Verify your package & add

    @Configuration
    @EnableSwagger2
    

    to the spring boot configuration file

       @Bean
        public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2).select()
                    .apis(RequestHandlerSelectors.basePackage("your.package.name")).paths(PathSelectors.any()).build()
                    .apiInfo(apiEndPointInfo());
        }
    

    only those dependencies are required

    
            io.springfox
            springfox-swagger2
            2.9.2
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        
    

    your final config file should looks like this

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @SpringBootApplication
    @Configuration
    @EnableSwagger2
    public class TestappApplication implements WebMvcConfigurer {
    
        private static final String PREFIX = "/WEB-INF/views/";
        private static final String SUFFIX = ".jsp";
    
        public static void main(String[] args) {
            SpringApplication.run(TestappApplication.class, args);
        }
    
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
            registry.jsp(PREFIX, SUFFIX);
    
        }
    
        @Bean
        public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2).select()
                    .apis(RequestHandlerSelectors.basePackage("your.package.scan.to.swagger.annotations")).paths(PathSelectors.any()).build()
                    .apiInfo(apiEndPointInfo());
        }
    
        public ApiInfo apiEndPointInfo() {
            return new ApiInfoBuilder().title("Spring Boot Rest API").description("user Management API")
                    .contact(new Contact("zouhair kasmi", "website.com/", "myemail@gmail.com"))
                    .license("Apache 2.0").licenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html")
                    .version("0.0.1-SNAPSHOT").build();
    
        }
    
    }
    

提交回复
热议问题