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 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";
}
}

View File

@ -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<Tag> swaggerTags() {
final List<Tag> 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;
}
}

View File

@ -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<Tag> 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<Tag> swaggerTags() {
return Arrays.asList(new Tag().name(OA_PUBLIC_APIS).description(OA_PUBLIC_APIS));
}
}

View File

@ -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";
}
}

View File

@ -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

View File

@ -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";
}
}

View File

@ -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";
}
}

View File

@ -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<Tag> swaggerTags() {
return new ArrayList<>();
}
}