swagger methods

This commit is contained in:
Michele Artini 2022-08-30 08:59:01 +02:00
parent 5aa2f013d4
commit ebedff0955
8 changed files with 69 additions and 69 deletions

View File

@ -9,9 +9,6 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import eu.dnetlib.common.app.AbstractDnetApp; 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 @SpringBootApplication
@EnableCaching @EnableCaching
@ -32,11 +29,8 @@ public class MainApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
openApi.info(new Info().title("D-Net Bioschemas Service APIs") return "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")));
} }
} }

View File

@ -9,9 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import eu.dnetlib.common.app.AbstractDnetApp; 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; import io.swagger.v3.oas.models.tags.Tag;
@SpringBootApplication @SpringBootApplication
@ -37,18 +34,19 @@ public class LiteratureBrokerServiceApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
return "OpenAIRE Broker API";
}
@Override
protected List<Tag> swaggerTags() {
final List<Tag> tags = new ArrayList<>(); final List<Tag> tags = new ArrayList<>();
tags.add(new Tag().name(TAG_EVENTS).description("Events management")); 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_SUBSCRIPTIONS).description("Subscriptions management"));
tags.add(new Tag().name(TAG_NOTIFICATIONS).description("Notifications 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_TOPIC_TYPES).description("Topic types management"));
tags.add(new Tag().name(TAG_OPENAIRE).description("OpenAIRE use case")); tags.add(new Tag().name(TAG_OPENAIRE).description("OpenAIRE use case"));
return tags;
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);
} }
} }

View File

@ -1,6 +1,6 @@
package eu.dnetlib.broker; package eu.dnetlib.broker;
import java.util.ArrayList; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.springdoc.core.GroupedOpenApi; import org.springdoc.core.GroupedOpenApi;
@ -9,9 +9,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import eu.dnetlib.common.app.AbstractDnetApp; 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; import io.swagger.v3.oas.models.tags.Tag;
@SpringBootApplication @SpringBootApplication
@ -32,15 +29,13 @@ public class BrokerPublicApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
final List<Tag> tags = new ArrayList<>(); return "OpenAIRE Public Broker API";
tags.add(new Tag().name(OA_PUBLIC_APIS).description(OA_PUBLIC_APIS)); }
openApi.info(new Info().title("OpenAIRE Public Broker API") @Override
.description("APIs documentation") protected List<Tag> swaggerTags() {
.version("1.1") return Arrays.asList(new Tag().name(OA_PUBLIC_APIS).description(OA_PUBLIC_APIS));
.license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0")))
.tags(tags);
} }
} }

View File

@ -9,9 +9,6 @@ import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import eu.dnetlib.common.app.AbstractDnetApp; 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 @SpringBootApplication
@EnableCaching @EnableCaching
@ -32,11 +29,8 @@ public class MainApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
openApi.info(new Info().title("MDStore Manager APIs") return "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")));
} }
} }

View File

@ -16,9 +16,6 @@ import eu.dnetlib.openaire.dsm.DsmApiController;
import eu.dnetlib.openaire.funders.FundersApiController; import eu.dnetlib.openaire.funders.FundersApiController;
import eu.dnetlib.openaire.info.InfoController; import eu.dnetlib.openaire.info.InfoController;
import eu.dnetlib.openaire.project.ProjectsController; 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 @EnableCaching
@EnableScheduling @EnableScheduling
@ -35,11 +32,13 @@ public class DNetOpenaireExporterApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
openApi.info(new Info().title("D-Net Exporter APIs") return "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"))); @Override
protected String swaggerVersion() {
return V1;
} }
@Bean @Bean

View File

@ -9,9 +9,6 @@ import org.springframework.context.annotation.ComponentScan;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import eu.dnetlib.common.app.AbstractDnetApp; 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 @SpringBootApplication
@EnableCaching @EnableCaching
@ -32,11 +29,7 @@ public class MainApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
openApi.info(new Info().title("D-Net Organizations Service APIs") return "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")));
} }
} }

View File

@ -15,9 +15,6 @@ import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.config.MeterFilter; import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.core.instrument.distribution.DistributionStatisticConfig; 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 @SpringBootApplication
@EnableCaching @EnableCaching
@ -85,11 +82,8 @@ public class MainApplication extends AbstractDnetApp {
} }
@Override @Override
protected void configSwagger(final OpenAPI openApi) { protected String swaggerTitle() {
openApi.info(new Info().title("ScholeExplorer APIs") return "ScholeExplorer APIs";
.description("APIs documentation")
.version("1.1")
.license(new License().name("Apache 2.0").url("http://www.apache.org/licenses/LICENSE-2.0")));
} }
} }

View File

@ -2,7 +2,9 @@ package eu.dnetlib.common.app;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import javax.annotation.PostConstruct; 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.ImmutableTag;
import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Metrics;
import io.swagger.v3.oas.models.OpenAPI; 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 { 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}") @Value("${maven.pom.path}")
private ClassPathResource pom; private ClassPathResource pom;
@ -46,13 +57,35 @@ public abstract class AbstractDnetApp {
@Bean @Bean
public OpenAPI newSwaggerDocket() { public OpenAPI newSwaggerDocket() {
final OpenAPI openAPI = new OpenAPI(); return new OpenAPI()
.info(getSwaggerInfo())
configSwagger(openAPI); .tags(swaggerTags());
return openAPI;
} }
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<Tag> swaggerTags() {
return new ArrayList<>();
}
} }