Introduce swagger configuration
authorBruno Sakoto <bruno.sakoto@bell.ca>
Fri, 2 Oct 2020 03:47:01 +0000 (23:47 -0400)
committerBruno Sakoto <bruno.sakoto@bell.ca>
Fri, 2 Oct 2020 03:48:19 +0000 (23:48 -0400)
Issue-ID: CCSDK-2754
Change-Id: I22bd50431ad24202dc84dd982bf7e7d2388ee981
Signed-off-by: Bruno Sakoto <bruno.sakoto@bell.ca>
cps/cps-rest/pom.xml
cps/cps-rest/src/main/java/org/onap/cps/rest/config/SpringFoxConfig.java [new file with mode: 0644]
cps/cps-rest/src/main/java/org/onap/cps/rest/controller/RestController.java

index bd9be8d..253c29c 100644 (file)
             <artifactId>spring-boot-starter-jetty</artifactId>\r
         </dependency>\r
 \r
+        <dependency>\r
+            <groupId>org.springframework.boot</groupId>\r
+            <artifactId>spring-boot-starter-web</artifactId>\r
+        </dependency>\r
+\r
+        <dependency>\r
+            <groupId>io.springfox</groupId>\r
+            <artifactId>springfox-swagger2</artifactId>\r
+            <version>2.9.2</version>\r
+        </dependency>\r
+\r
+        <dependency>\r
+            <groupId>io.springfox</groupId>\r
+            <artifactId>springfox-swagger-ui</artifactId>\r
+            <version>2.9.2</version>\r
+        </dependency>\r
 \r
         <dependency>\r
             <groupId>org.springframework.boot</groupId>\r
diff --git a/cps/cps-rest/src/main/java/org/onap/cps/rest/config/SpringFoxConfig.java b/cps/cps-rest/src/main/java/org/onap/cps/rest/config/SpringFoxConfig.java
new file mode 100644 (file)
index 0000000..3a9e539
--- /dev/null
@@ -0,0 +1,38 @@
+package org.onap.cps.rest.config;
+
+
+import static springfox.documentation.builders.PathSelectors.regex;
+
+import com.google.common.base.Predicate;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * Swagger configuration.
+ */
+@Configuration
+@EnableSwagger2
+public class SpringFoxConfig {
+
+    /**
+     * Define api configuration.
+     */
+    @Bean
+    public Docket api() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                       .select()
+                       .apis(RequestHandlerSelectors.any())
+                       .paths(paths())
+                       .build();
+    }
+
+    private Predicate<String> paths() {
+        return regex("/model.*");
+    }
+
+}
+
index a64cd6a..9b7c000 100644 (file)
@@ -23,6 +23,7 @@ import com.google.gson.Gson;
 import com.google.gson.JsonSyntaxException;
 import java.io.File;
 import java.io.IOException;
+import java.util.UUID;
 import javax.ws.rs.Consumes;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -35,9 +36,15 @@ import org.onap.cps.api.CpService;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.parser.api.YangParserException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.multipart.MultipartFile;
 
 
 @Path("cps")
+@org.springframework.web.bind.annotation.RestController
 public class RestController {
 
     @Autowired
@@ -66,6 +73,13 @@ public class RestController {
         }
     }
 
+    @PostMapping("/model")
+    @ResponseStatus(HttpStatus.CREATED)
+    public String addModel(@RequestParam("file") MultipartFile file) {
+        // Store and return a model dto ...
+        return UUID.randomUUID() + " : " + file.getOriginalFilename();
+    }
+
     /**
      * Upload a JSON file.
      *