From d714f097eba5537e64a917db7b9fc3e5dc7ecde1 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Sun, 28 Sep 2014 00:50:47 -0700 Subject: [PATCH] updated static template --- .../com/wordnik/swagger/codegen/Codegen.java | 2 + .../swagger/codegen/DefaultGenerator.java | 20 ++++-- .../codegen/languages/JavaClientCodegen.java | 6 +- .../codegen/languages/StaticDocCodegen.java | 64 +++++++++++++++++++ .../resources/swagger-static/index.mustache | 4 +- .../resources/swagger-static/model.mustache | 2 +- src/test/resources/petstore.json | 3 - 7 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/wordnik/swagger/codegen/languages/StaticDocCodegen.java diff --git a/src/main/java/com/wordnik/swagger/codegen/Codegen.java b/src/main/java/com/wordnik/swagger/codegen/Codegen.java index 32f48eeddc0..eee6208f1e9 100644 --- a/src/main/java/com/wordnik/swagger/codegen/Codegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/Codegen.java @@ -69,6 +69,8 @@ public class Codegen extends DefaultGenerator { return new JavaClientCodegen(); else if("jaxrs".equals(name)) return new JaxRSServerCodegen(); + else if("static".equals(name)) + return new StaticDocCodegen(); else throw new RuntimeException("unsupported client type"); } diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java index 27251a1cedc..6772421abf3 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultGenerator.java @@ -35,7 +35,7 @@ public class DefaultGenerator implements Generator { try { config.processOpts(); Map models = null; - Map operations = null; + List allOperations = new ArrayList(); // models Map definitions = swagger.getDefinitions(); @@ -66,11 +66,12 @@ public class DefaultGenerator implements Generator { Map> paths = processPaths(swagger.getPaths()); for(String tag : paths.keySet()) { List ops = paths.get(tag); - - operations = processOperations(config, tag, ops); - operations.put("baseName", tag); - operations.put("modelPackage", config.modelPackage()); - operations.putAll(config.additionalProperties()); + Map operation = processOperations(config, tag, ops); + operation.put("baseName", tag); + operation.put("modelPackage", config.modelPackage()); + operation.putAll(config.additionalProperties()); + operation.put("classname", config.toApiName(tag)); + allOperations.add(operation); for(String templateName : config.apiTemplateFiles().keySet()) { String suffix = config.apiTemplateFiles().get(templateName); String filename = config.apiFileFolder() + @@ -88,7 +89,7 @@ public class DefaultGenerator implements Generator { .defaultValue("") .compile(template); - writeToFile(filename, tmpl.execute(operations)); + writeToFile(filename, tmpl.execute(operation)); } } @@ -96,6 +97,11 @@ public class DefaultGenerator implements Generator { Map bundle = new HashMap(); bundle.putAll(config.additionalProperties()); bundle.put("apiPackage", config.apiPackage()); + + Map apis = new HashMap(); + apis.put("apis", allOperations); + + bundle.put("apiInfo", apis); for(SupportingFile support : config.supportingFiles()) { String outputFolder = config.outputFolder(); if(support.folder != null && !"".equals(support.folder)) diff --git a/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java b/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java index 654186d65e7..00683fdd0e9 100644 --- a/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/languages/JavaClientCodegen.java @@ -7,7 +7,7 @@ import java.util.*; import java.io.File; public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { - protected String invokerPackage = "com.wordnik.api"; + protected String invokerPackage = "com.wordnik.client"; protected String groupId = "com.wordnik"; protected String artifactId = "swagger-client"; protected String artifactVersion = "1.0.0"; @@ -19,8 +19,8 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig { modelTemplateFiles.put("model.mustache", ".java"); apiTemplateFiles.put("api.mustache", ".java"); templateDir = "Java"; - apiPackage = "com.wordnik.api"; - modelPackage = "com.wordnik.model"; + apiPackage = "com.wordnik.client.api"; + modelPackage = "com.wordnik.client.model"; additionalProperties.put("invokerPackage", invokerPackage); additionalProperties.put("groupId", groupId); diff --git a/src/main/java/com/wordnik/swagger/codegen/languages/StaticDocCodegen.java b/src/main/java/com/wordnik/swagger/codegen/languages/StaticDocCodegen.java new file mode 100644 index 00000000000..d10b9df31ff --- /dev/null +++ b/src/main/java/com/wordnik/swagger/codegen/languages/StaticDocCodegen.java @@ -0,0 +1,64 @@ +package com.wordnik.swagger.codegen.languages; + +import com.wordnik.swagger.codegen.*; +import com.wordnik.swagger.models.properties.*; + +import java.util.*; +import java.io.File; + +public class StaticDocCodegen extends DefaultCodegen implements CodegenConfig { + protected String invokerPackage = "com.wordnik.client"; + protected String groupId = "com.wordnik"; + protected String artifactId = "swagger-client"; + protected String artifactVersion = "1.0.0"; + protected String sourceFolder = "docs"; + + public StaticDocCodegen() { + super(); + outputFolder = "docs"; + modelTemplateFiles.put("model.mustache", ".html"); + apiTemplateFiles.put("operation.mustache", ".html"); + templateDir = "swagger-static"; + + additionalProperties.put("invokerPackage", invokerPackage); + additionalProperties.put("groupId", groupId); + additionalProperties.put("artifactId", artifactId); + additionalProperties.put("artifactVersion", artifactVersion); + + supportingFiles.add(new SupportingFile("package.mustache", "", "package.json")); + supportingFiles.add(new SupportingFile("main.mustache", "", "main.js")); + supportingFiles.add(new SupportingFile("assets/css/bootstrap-responsive.css", + outputFolder + "/assets/css", "bootstrap-responsive.css")); + supportingFiles.add(new SupportingFile("assets/css/bootstrap.css", + outputFolder + "/assets/css", "bootstrap.css")); + supportingFiles.add(new SupportingFile("assets/css/style.css", + outputFolder + "/assets/css", "style.css")); + supportingFiles.add(new SupportingFile("assets/images/logo.png", + outputFolder + "/assets/images", "logo.png")); + supportingFiles.add(new SupportingFile("assets/js/bootstrap.js", + outputFolder + "/assets/js", "bootstrap.js")); + supportingFiles.add(new SupportingFile("assets/js/jquery-1.8.3.min.js", + outputFolder + "/assets/js", "jquery-1.8.3.min.js")); + supportingFiles.add(new SupportingFile("assets/js/main.js", + outputFolder + "/assets/js", "main.js")); + supportingFiles.add(new SupportingFile("index.mustache", + outputFolder, "index.html")); + + instantiationTypes.put("array", "ArrayList"); + instantiationTypes.put("map", "HashMap"); + } + + @Override + public String escapeReservedWord(String name) { + return "_" + name; + } + + @Override + public String apiFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + "operations"; + } + + public String modelFileFolder() { + return outputFolder + File.separator + sourceFolder + File.separator + "models"; + } +} \ No newline at end of file diff --git a/src/main/resources/swagger-static/index.mustache b/src/main/resources/swagger-static/index.mustache index 87d42124431..3cfbea753c8 100644 --- a/src/main/resources/swagger-static/index.mustache +++ b/src/main/resources/swagger-static/index.mustache @@ -33,12 +33,12 @@ {{#apis}}
diff --git a/src/main/resources/swagger-static/model.mustache b/src/main/resources/swagger-static/model.mustache index fd107aa1fef..a9a39ab6e91 100644 --- a/src/main/resources/swagger-static/model.mustache +++ b/src/main/resources/swagger-static/model.mustache @@ -5,7 +5,7 @@ {{#vars}}
  • {{name}} : {{datatype}} -
    {description}} +
    {{description}}
{{/vars}} diff --git a/src/test/resources/petstore.json b/src/test/resources/petstore.json index 9f8fb0e47af..1f450a3b097 100644 --- a/src/test/resources/petstore.json +++ b/src/test/resources/petstore.json @@ -706,9 +706,6 @@ "status": { "type": "string", "position": 0 - }, - "complete": { - "type": "boolean" } } }