package com.plannaplan; import java.util.Collections; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import springfox.documentation.service.Parameter; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * Config class of Swagger to generate rest api documentation */ @Configuration @EnableSwagger2 public class Swagger2Config extends WebMvcConfigurationSupport { @Bean public Docket createRestApi() { Parameter authHeader = new ParameterBuilder().parameterType("header").name("Authorization") .modelRef(new ModelRef("string")).build(); return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select() .apis(RequestHandlerSelectors.basePackage("com.plannaplan")).paths(PathSelectors.any()).build() .globalOperationParameters(Collections.singletonList(authHeader)); } @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/"); } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("plannaplan").description("Aplikacja do zapisów na zajęcia UAM.") .termsOfServiceUrl("https://plannaplan.pl/") // .contact("") .version("1.0").build(); } }