Skip to content

Instantly share code, notes, and snippets.

@atishn
Created July 22, 2015 01:48

Revisions

  1. Atish created this gist Jul 22, 2015.
    67 changes: 67 additions & 0 deletions SwaggerConfig.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,67 @@
    import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
    import com.mangofactory.swagger.plugin.EnableSwagger;
    import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
    import com.wordnik.swagger.model.ApiInfo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    import java.util.List;

    import static com.google.common.collect.Lists.newArrayList;

    /**
    * Swagger configuration for easy API development.
    */
    @Configuration
    @EnableSwagger
    public class SwaggerConfig {

    /**
    * The Spring swagger config.
    */
    @Autowired
    private SpringSwaggerConfig springSwaggerConfig;

    /**
    * Custom implementation.
    *
    * @return the swagger spring mvc plugin
    */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation() {
    return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
    .apiInfo(apiInfo()).includePatterns(swaggerPatterns());
    }

    /**
    * List of API EndPoints to be included in Swagger UI.
    *
    * @return Array of Patterns.
    */
    private String[] swaggerPatterns() {
    List<String> patterns = newArrayList();
    patterns.add("/product/.*");
    patterns.add("/category/.*");
    patterns.add("/cache");


    return patterns.toArray(new String[patterns.size()]);
    }

    /**
    * Api info.
    *
    * @return the api info
    */
    private ApiInfo apiInfo() {
    return new ApiInfo(
    "Development API",
    "Mobile applications and beyond!",
    "https://xxxx.com",
    "[email protected]",
    "Spring Boot",
    ""
    );
    }
    }