argos/dmp-backend/web/src/main/java/eu/eudat/publicapi/configurations/SwaggerConfiguration.java

50 lines
2.0 KiB
Java
Raw Normal View History

2022-10-04 12:06:49 +02:00
package eu.eudat.publicapi.configurations;
import eu.eudat.models.data.security.Principal;
2022-10-10 10:56:48 +02:00
import org.springframework.beans.factory.annotation.Autowired;
2022-10-04 12:06:49 +02:00
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
2022-10-10 10:56:48 +02:00
import org.springframework.core.env.Environment;
2022-10-04 12:06:49 +02:00
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
2022-10-10 10:56:48 +02:00
import springfox.documentation.service.SecurityScheme;
2022-10-04 12:06:49 +02:00
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.Collections;
2022-10-10 10:56:48 +02:00
import java.util.HashSet;
2022-10-04 12:06:49 +02:00
@Configuration
public class SwaggerConfiguration {
// private static final TypeResolver resolver = new TypeResolver();
2022-10-10 10:56:48 +02:00
@Autowired
private Environment environment;
2022-10-04 12:06:49 +02:00
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
2022-10-10 10:56:48 +02:00
.host(this.environment.getProperty("publicapi.host"))
.protocols(new HashSet<>(Collections.singleton(this.environment.getProperty("publicapi.schema"))))
2022-10-04 12:06:49 +02:00
.select()
.apis(RequestHandlerSelectors.basePackage("eu.eudat.publicapi.controllers"))
.paths(PathSelectors.regex("/api/public/(dmps|datasets)/?.*"))
.build().apiInfo(apiInfo())//.ignoredParameterTypes(Principal.class)
2022-10-10 10:56:48 +02:00
.pathMapping(this.environment.getProperty("publicapi.basePath"))
2022-10-04 12:06:49 +02:00
.useDefaultResponseMessages(false);
}
private ApiInfo apiInfo() {
return new ApiInfo(
"OpenDMP public API",
"Argos public API.",
"1.0",
"https://argos.openaire.eu/terms-and-conditions",
new Contact("Argos", "https://argos.openaire.eu/", "argos@openaire.eu "),
null, null, Collections.emptyList());
}
}