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