Project

General

Profile

1
package eu.dnetlib.swagger.configuration;
2

    
3
import eu.dnetlib.OpenaireExporterConfig;
4
import eu.dnetlib.OpenaireExporterConfig.Swagger;
5
import eu.dnetlib.common.rmi.DNetRestDocumentation;
6
import org.springframework.beans.factory.annotation.Autowired;
7
import org.springframework.beans.factory.annotation.Value;
8
import org.springframework.context.annotation.Bean;
9
import org.springframework.context.annotation.Configuration;
10
import springfox.documentation.builders.ApiInfoBuilder;
11
import springfox.documentation.builders.RequestHandlerSelectors;
12
import springfox.documentation.service.ApiInfo;
13
import springfox.documentation.service.Contact;
14
import springfox.documentation.spi.DocumentationType;
15
import springfox.documentation.spring.web.plugins.Docket;
16
import springfox.documentation.swagger2.annotations.EnableSwagger2;
17

    
18
@Configuration
19
@EnableSwagger2
20
public class SwaggerDocumentationConfig {
21

    
22
	@Autowired
23
	private OpenaireExporterConfig config;
24

    
25
    @Bean
26
    public Docket customImplementation() {
27
        return new Docket(DocumentationType.SWAGGER_2)
28
                .select()
29
		            .apis(RequestHandlerSelectors.withClassAnnotation(DNetRestDocumentation.class))
30
                    .build()
31
                .directModelSubstitute(org.joda.time.LocalDate.class, java.sql.Date.class)
32
                .directModelSubstitute(org.joda.time.DateTime.class, java.util.Date.class)
33
                .apiInfo(apiInfo());
34
    }
35

    
36
	private ApiInfo apiInfo() {
37
		final Swagger swag = config.getSwagger();
38
		return new ApiInfoBuilder()
39
				.title(swag.getApiTitle())
40
				.description(swag.getApiDescription())
41
				.license(swag.getApiLicense())
42
				.licenseUrl(swag.getApiLicenseUrl())
43
				.termsOfServiceUrl("")
44
				.version("1.0.0")
45
				.contact(new Contact(
46
						swag.getApiContactName(),
47
						swag.getApiContactUrl(),
48
						swag.getApiContactEmail()))
49
				.build();
50
	}
51

    
52
}
(2-2/2)