You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/09/17 17:15:47 UTC

[8/8] camel git commit: CAMEL-7800: camel-swagger-java - work in progress

CAMEL-7800: camel-swagger-java - work in progress


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/03c407c9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/03c407c9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/03c407c9

Branch: refs/heads/swagger
Commit: 03c407c94eef391ad724e2afcb2429906e36dfb1
Parents: 3d67261
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Sep 17 17:16:50 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Sep 17 17:16:50 2015 +0200

----------------------------------------------------------------------
 .../RestSwaggerApiDeclarationServlet.java       |  4 ++-
 .../apache/camel/swagger/RestSwaggerReader.java | 25 ++++++-------
 .../org/apache/camel/swagger/SwaggerHelper.java | 37 ++++++++++++++++++++
 3 files changed, 50 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/03c407c9/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
index 9a918b2..ceb5af2 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerApiDeclarationServlet.java
@@ -35,6 +35,8 @@ import org.apache.camel.model.rest.RestDefinition;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.camel.swagger.SwaggerHelper.buildUrl;
+
 public abstract class RestSwaggerApiDeclarationServlet extends HttpServlet {
 
     private Logger LOG = LoggerFactory.getLogger(RestSwaggerApiDeclarationServlet.class);
@@ -168,7 +170,7 @@ public abstract class RestSwaggerApiDeclarationServlet extends HttpServlet {
             } else {
                 swaggerConfig.setHost(url.getHost());
             }
-            swaggerConfig.setBasePath(path + "/" + base);
+            swaggerConfig.setBasePath(buildUrl(path, base));
         }
         initDone = true;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/03c407c9/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
index b343c5f..e6172af 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
@@ -33,12 +33,12 @@ import io.swagger.models.parameters.HeaderParameter;
 import io.swagger.models.parameters.Parameter;
 import io.swagger.models.parameters.PathParameter;
 import io.swagger.models.parameters.QueryParameter;
+import io.swagger.models.parameters.SerializableParameter;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestOperationParamDefinition;
 import org.apache.camel.model.rest.RestOperationResponseMsgDefinition;
 import org.apache.camel.model.rest.RestParamType;
 import org.apache.camel.model.rest.VerbDefinition;
-import org.apache.camel.util.FileUtil;
 
 public class RestSwaggerReader {
 
@@ -60,7 +60,7 @@ public class RestSwaggerReader {
             // the method must be in lower case
             String method = verb.asVerb().toLowerCase(Locale.US);
             // operation path is a key
-            String opPath = buildUrl(basePath, verb.getUri());
+            String opPath = SwaggerHelper.buildUrl(basePath, verb.getUri());
 
             Operation op = new Operation();
 
@@ -71,6 +71,8 @@ public class RestSwaggerReader {
             }
             path = path.set(method, op);
 
+            // TODO: add the type / outType stuff with array and model detection
+
             if (verb.getConsumes() != null) {
                 op.consumes(verb.getConsumes());
             } else if (rest.getConsumes() != null) {
@@ -103,6 +105,12 @@ public class RestSwaggerReader {
                     parameter.setAccess(param.getAccess());
                     parameter.setDescription(param.getDescription());
                     parameter.setRequired(param.getRequired());
+
+                    if (parameter instanceof SerializableParameter) {
+                        SerializableParameter sp = (SerializableParameter) parameter;
+                        sp.setType(param.getDataType());
+                    }
+
                     op.addParameter(parameter);
                 }
             }
@@ -121,18 +129,6 @@ public class RestSwaggerReader {
         return swagger;
     }
 
-    private String buildUrl(String path1, String path2) {
-        String s1 = FileUtil.stripTrailingSeparator(path1);
-        String s2 = FileUtil.stripLeadingSeparator(path2);
-        if (s1 != null && s2 != null) {
-            return s1 + "/" + s2;
-        } else if (path1 != null) {
-            return path1;
-        } else {
-            return path2;
-        }
-    }
-
     /**
      * To sort the rest operations
      */
@@ -161,5 +157,4 @@ public class RestSwaggerReader {
         }
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/03c407c9/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerHelper.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerHelper.java
new file mode 100644
index 0000000..eb5124a
--- /dev/null
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerHelper.java
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.swagger;
+
+import org.apache.camel.util.FileUtil;
+
+public final class SwaggerHelper {
+
+    private SwaggerHelper() {
+    }
+
+    public static String buildUrl(String path1, String path2) {
+        String s1 = FileUtil.stripTrailingSeparator(path1);
+        String s2 = FileUtil.stripLeadingSeparator(path2);
+        if (s1 != null && s2 != null) {
+            return s1 + "/" + s2;
+        } else if (path1 != null) {
+            return path1;
+        } else {
+            return path2;
+        }
+    }
+}