From 9015e68dc30a238adc94132d991f1da5aca7ecdd Mon Sep 17 00:00:00 2001 From: Kostis Trantzas <ktrantzas@ece.upatras.gr> Date: Mon, 26 May 2025 18:36:40 +0300 Subject: [PATCH] Adding OAS support for the NFV Metrics API (fix for #12) --- .../java/portal/api/metrics/MetricsApi.java | 2 +- .../portal/api/swagger2/SwaggerConfig.java | 33 ++++++++++++++++--- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/main/java/portal/api/metrics/MetricsApi.java b/src/main/java/portal/api/metrics/MetricsApi.java index 9e6949d..9a40578 100644 --- a/src/main/java/portal/api/metrics/MetricsApi.java +++ b/src/main/java/portal/api/metrics/MetricsApi.java @@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -@Tag(name = "NFV_MetricsApi") +@Tag(name = "NFV Metrics Api") public interface MetricsApi { Logger log = LoggerFactory.getLogger(MetricsApi.class); diff --git a/src/main/java/portal/api/swagger2/SwaggerConfig.java b/src/main/java/portal/api/swagger2/SwaggerConfig.java index c49190f..db9a0b9 100644 --- a/src/main/java/portal/api/swagger2/SwaggerConfig.java +++ b/src/main/java/portal/api/swagger2/SwaggerConfig.java @@ -57,7 +57,7 @@ public class SwaggerConfig { SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); return GroupedOpenApi.builder() - .group("nfv-portal.api.controller-v1.0.0") + .group("nfv-portal.api.controller") .addOpenApiCustomizer( this.apiInfoPortalAPI() ) .packagesToScan("portal.api.controller") .build(); @@ -69,11 +69,36 @@ public class SwaggerConfig { return openApi -> openApi .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) - .info(new Info().title("NFV portal API") - .description("## NFV portal API") + .info(new Info().title("NFV Portal API") + .description("## An API to manage NFV Artifacts") .version("1.0.0") - .license(new License().name("Apache 2.0").url("http://openslice.io"))); + .license(new License().name("Apache 2.0").url("https://osl.etsi.org"))); + } + + @Bean + public GroupedOpenApi nfvportalmetrics(){ + + SpringDocUtils.getConfig().replaceWithClass(java.time.LocalDate.class, java.sql.Date.class); + SpringDocUtils.getConfig().replaceWithClass(java.time.OffsetDateTime.class, java.util.Date.class); + return GroupedOpenApi.builder() + .group("nfv-portal.api.metrics") + .addOpenApiCustomizer( this.nfvPortalAPImetrics() ) + .packagesToScan("portal.api.metrics") + .build(); + + } + + OpenApiCustomizer nfvPortalAPImetrics() { + + + return openApi -> openApi + .specVersion( SpecVersion.V30 ).addSecurityItem(new SecurityRequirement().addList("security_auth")) + .info(new Info().title("NFV Portal metrics API") + .description("## An API to retrieve metrics about NFV Portal") + + .version("1.0.0") + .license(new License().name("Apache 2.0").url("https://osl.etsi.org"))); } -- GitLab