diff --git a/apps/bioschemas-api/src/main/java/eu/dnetlib/bioschemas/api/MainApplication.java b/apps/bioschemas-api/src/main/java/eu/dnetlib/bioschemas/api/MainApplication.java index e04ab8ff..7a57b29b 100644 --- a/apps/bioschemas-api/src/main/java/eu/dnetlib/bioschemas/api/MainApplication.java +++ b/apps/bioschemas-api/src/main/java/eu/dnetlib/bioschemas/api/MainApplication.java @@ -9,9 +9,6 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; import eu.dnetlib.common.app.AbstractDnetApp; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; @SpringBootApplication @EnableCaching @@ -32,11 +29,8 @@ public class MainApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - openApi.info(new Info().title("D-Net Bioschemas Service APIs") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))); + protected String swaggerTitle() { + return "D-Net Bioschemas Service APIs"; } } diff --git a/apps/dhp-broker-application/src/main/java/eu/dnetlib/broker/LiteratureBrokerServiceApplication.java b/apps/dhp-broker-application/src/main/java/eu/dnetlib/broker/LiteratureBrokerServiceApplication.java index 4bf933a0..034f0331 100644 --- a/apps/dhp-broker-application/src/main/java/eu/dnetlib/broker/LiteratureBrokerServiceApplication.java +++ b/apps/dhp-broker-application/src/main/java/eu/dnetlib/broker/LiteratureBrokerServiceApplication.java @@ -9,9 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import eu.dnetlib.common.app.AbstractDnetApp; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.tags.Tag; @SpringBootApplication @@ -37,18 +34,19 @@ public class LiteratureBrokerServiceApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { + protected String swaggerTitle() { + return "OpenAIRE Broker API"; + } + + @Override + protected List swaggerTags() { final List tags = new ArrayList<>(); tags.add(new Tag().name(TAG_EVENTS).description("Events management")); tags.add(new Tag().name(TAG_SUBSCRIPTIONS).description("Subscriptions management")); tags.add(new Tag().name(TAG_NOTIFICATIONS).description("Notifications management")); tags.add(new Tag().name(TAG_TOPIC_TYPES).description("Topic types management")); tags.add(new Tag().name(TAG_OPENAIRE).description("OpenAIRE use case")); - - openApi.info(new Info().title("Literature Broker Service") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))) - .tags(tags); + return tags; } + } diff --git a/apps/dhp-broker-public-application/src/main/java/eu/dnetlib/broker/BrokerPublicApplication.java b/apps/dhp-broker-public-application/src/main/java/eu/dnetlib/broker/BrokerPublicApplication.java index 54774e41..afded522 100644 --- a/apps/dhp-broker-public-application/src/main/java/eu/dnetlib/broker/BrokerPublicApplication.java +++ b/apps/dhp-broker-public-application/src/main/java/eu/dnetlib/broker/BrokerPublicApplication.java @@ -1,6 +1,6 @@ package eu.dnetlib.broker; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.springdoc.core.GroupedOpenApi; @@ -9,9 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import eu.dnetlib.common.app.AbstractDnetApp; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; import io.swagger.v3.oas.models.tags.Tag; @SpringBootApplication @@ -32,15 +29,13 @@ public class BrokerPublicApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - final List tags = new ArrayList<>(); - tags.add(new Tag().name(OA_PUBLIC_APIS).description(OA_PUBLIC_APIS)); + protected String swaggerTitle() { + return "OpenAIRE Public Broker API"; + } - openApi.info(new Info().title("OpenAIRE Public Broker API") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))) - .tags(tags); + @Override + protected List swaggerTags() { + return Arrays.asList(new Tag().name(OA_PUBLIC_APIS).description(OA_PUBLIC_APIS)); } } diff --git a/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/MainApplication.java b/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/MainApplication.java index 4611b7dd..602da247 100644 --- a/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/MainApplication.java +++ b/apps/dhp-mdstore-manager/src/main/java/eu/dnetlib/data/mdstore/manager/MainApplication.java @@ -9,9 +9,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.scheduling.annotation.EnableScheduling; import eu.dnetlib.common.app.AbstractDnetApp; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; @SpringBootApplication @EnableCaching @@ -32,11 +29,8 @@ public class MainApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - openApi.info(new Info().title("MDStore Manager APIs") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))); + protected String swaggerTitle() { + return "MDStore Manager APIs"; } } diff --git a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/DNetOpenaireExporterApplication.java b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/DNetOpenaireExporterApplication.java index 9b642d0b..21b36b62 100644 --- a/apps/dnet-exporter-api/src/main/java/eu/dnetlib/DNetOpenaireExporterApplication.java +++ b/apps/dnet-exporter-api/src/main/java/eu/dnetlib/DNetOpenaireExporterApplication.java @@ -16,9 +16,6 @@ import eu.dnetlib.openaire.dsm.DsmApiController; import eu.dnetlib.openaire.funders.FundersApiController; import eu.dnetlib.openaire.info.InfoController; import eu.dnetlib.openaire.project.ProjectsController; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; @EnableCaching @EnableScheduling @@ -35,11 +32,13 @@ public class DNetOpenaireExporterApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - openApi.info(new Info().title("D-Net Exporter APIs") - .description("APIs documentation") - .version(V1) - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))); + protected String swaggerTitle() { + return "D-Net Exporter APIs"; + } + + @Override + protected String swaggerVersion() { + return V1; } @Bean diff --git a/apps/dnet-orgs-database-application/src/main/java/eu/dnetlib/organizations/MainApplication.java b/apps/dnet-orgs-database-application/src/main/java/eu/dnetlib/organizations/MainApplication.java index 964b4d7b..e1968ca4 100644 --- a/apps/dnet-orgs-database-application/src/main/java/eu/dnetlib/organizations/MainApplication.java +++ b/apps/dnet-orgs-database-application/src/main/java/eu/dnetlib/organizations/MainApplication.java @@ -9,9 +9,6 @@ import org.springframework.context.annotation.ComponentScan; import org.springframework.scheduling.annotation.EnableScheduling; import eu.dnetlib.common.app.AbstractDnetApp; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; @SpringBootApplication @EnableCaching @@ -32,11 +29,7 @@ public class MainApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - openApi.info(new Info().title("D-Net Organizations Service APIs") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))); + protected String swaggerTitle() { + return "D-Net Organizations Service APIs"; } - } diff --git a/apps/scholexplorer-api/src/main/java/eu/dnetlib/scholix/api/MainApplication.java b/apps/scholexplorer-api/src/main/java/eu/dnetlib/scholix/api/MainApplication.java index cb936c26..91b3b3cd 100644 --- a/apps/scholexplorer-api/src/main/java/eu/dnetlib/scholix/api/MainApplication.java +++ b/apps/scholexplorer-api/src/main/java/eu/dnetlib/scholix/api/MainApplication.java @@ -15,9 +15,6 @@ import io.micrometer.core.instrument.Meter; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.config.MeterFilter; import io.micrometer.core.instrument.distribution.DistributionStatisticConfig; -import io.swagger.v3.oas.models.OpenAPI; -import io.swagger.v3.oas.models.info.Info; -import io.swagger.v3.oas.models.info.License; @SpringBootApplication @EnableCaching @@ -85,11 +82,8 @@ public class MainApplication extends AbstractDnetApp { } @Override - protected void configSwagger(final OpenAPI openApi) { - openApi.info(new Info().title("ScholeExplorer APIs") - .description("APIs documentation") - .version("1.1") - .license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"))); + protected String swaggerTitle() { + return "ScholeExplorer APIs"; } } diff --git a/libs/dnet-apps-common/src/main/java/eu/dnetlib/common/app/AbstractDnetApp.java b/libs/dnet-apps-common/src/main/java/eu/dnetlib/common/app/AbstractDnetApp.java index 4dd18064..5e8f5380 100644 --- a/libs/dnet-apps-common/src/main/java/eu/dnetlib/common/app/AbstractDnetApp.java +++ b/libs/dnet-apps-common/src/main/java/eu/dnetlib/common/app/AbstractDnetApp.java @@ -2,7 +2,9 @@ package eu.dnetlib.common.app; import java.io.IOException; import java.io.InputStreamReader; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import javax.annotation.PostConstruct; @@ -18,9 +20,18 @@ import org.springframework.core.io.ClassPathResource; import io.micrometer.core.instrument.ImmutableTag; import io.micrometer.core.instrument.Metrics; import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.tags.Tag; public abstract class AbstractDnetApp { + private static final String DEFAULT_VERSION = "1.1"; + + private static final String DEFAULT_DESC = "APIs documentation"; + + private static final License APACHE_2_LICENSE = new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0"); + @Value("${maven.pom.path}") private ClassPathResource pom; @@ -46,13 +57,35 @@ public abstract class AbstractDnetApp { @Bean public OpenAPI newSwaggerDocket() { - final OpenAPI openAPI = new OpenAPI(); - - configSwagger(openAPI); - - return openAPI; + return new OpenAPI() + .info(getSwaggerInfo()) + .tags(swaggerTags()); } - protected abstract void configSwagger(final OpenAPI openAPI); + private Info getSwaggerInfo() { + return new Info() + .title(swaggerTitle()) + .description(swaggerDesc()) + .version(swaggerVersion()) + .license(swaggerLicense()); + } + + protected abstract String swaggerTitle(); + + protected String swaggerDesc() { + return DEFAULT_DESC; + } + + protected String swaggerVersion() { + return DEFAULT_VERSION; + } + + protected License swaggerLicense() { + return APACHE_2_LICENSE; + } + + protected List swaggerTags() { + return new ArrayList<>(); + } }