dnet-role-management/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/SwaggerConfig.java

69 lines
2.6 KiB
Java

package eu.dnetlib.dnetrolemanagement.config.security;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
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.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.Collections;
import java.util.List;
/**
* Swagger configuration class
*/
@Configuration
@Profile({"swagger"})
@EnableSwagger2
public class SwaggerConfig {
private Logger logger = LoggerFactory.getLogger(SwaggerConfig.class);
@Bean
public Docket createRestApi() {
logger.info("SwaggerConfig for Dnet Role Management");
return new Docket(DocumentationType.SWAGGER_2)
.globalOperationParameters(globalParameterList())
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("eu.dnetlib.dnetrolemanagement.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
logger.info("SwaggerConfig Dnet Role Management API information");
return new ApiInfoBuilder()
.title("Dnet Role Management Document") // title
.description("Api documentation") // description
.version("1.0") // version
.contact(new Contact("Konstantinos Triantafyllou",
"https://code-repo.d4science.org/k.triantafyllou/dnet-role-management", "k.triantafyllou@di.uoa.gr")) // contact information
.build();
}
private List<Parameter> globalParameterList() {
Parameter authTokenHeader = new ParameterBuilder()
.name("Session") // name of the header
.modelRef(new ModelRef("string")) // data-type of the header
.required(false)
.parameterType("header")
.description("Session ID")
.build();
return Collections.singletonList(authTokenHeader);
}
}