package org.synyx.urlaubsverwaltung.config; import com.mangofactory.swagger.configuration.SpringSwaggerConfig; import com.mangofactory.swagger.plugin.EnableSwagger; import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin; import com.mangofactory.swagger.models.dto.ApiInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author Aljona Murygina - murygina@synyx.de */ @Configuration @EnableSwagger public class SwaggerConfig { @Value(value = "${info.app.version}") private String version; private SpringSwaggerConfig springSwaggerConfig; @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) { this.springSwaggerConfig = springSwaggerConfig; } @Bean public SwaggerSpringMvcPlugin swaggerSpringMvcPlugin() { SwaggerSpringMvcPlugin swaggerSpringMvcPlugin = new SwaggerSpringMvcPlugin(this.springSwaggerConfig); swaggerSpringMvcPlugin.apiVersion(version); swaggerSpringMvcPlugin.apiInfo(new ProjectApiInfo()); swaggerSpringMvcPlugin.includePatterns("/api/.+"); return swaggerSpringMvcPlugin; } private final class ProjectApiInfo extends ApiInfo { private ProjectApiInfo() { super("Urlaubsverwaltung API: " + version, "This Rest API provides the possibility to fetch information about the persons " + "and their vacation and sick notes.", null, "murygina@synyx.de", null, null); } } }