From 33138c139f3195065b62e348d94a80b45f44c658 Mon Sep 17 00:00:00 2001 From: Fake Bob Dobbs Date: Fri, 15 May 2015 16:55:49 -0400 Subject: [PATCH 1/4] A parameter's default value is not flowing from the swagger definition to the actual API implementation. This change makes the property from the swagger def json available to the templates. --- .../java/com/wordnik/swagger/codegen/CodegenParameter.java | 5 +++-- .../java/com/wordnik/swagger/codegen/DefaultCodegen.java | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenParameter.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenParameter.java index 04cecabad90..8dc9991daed 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenParameter.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenParameter.java @@ -3,7 +3,7 @@ package com.wordnik.swagger.codegen; public class CodegenParameter { public Boolean isFormParam, isQueryParam, isPathParam, isHeaderParam, isCookieParam, isBodyParam, isFile, notFile, hasMore, isContainer, secondaryParam; - public String baseName, paramName, dataType, collectionFormat, description, baseType; + public String baseName, paramName, dataType, collectionFormat, description, baseType, defaultValue; public String jsonSchema; /** @@ -34,7 +34,8 @@ public class CodegenParameter { output.isBodyParam = this.isBodyParam; output.required = this.required; output.jsonSchema = this.jsonSchema; + output.defaultValue = this.defaultValue; return output; } -} \ No newline at end of file +} diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 6f51374c536..966cc817863 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -904,6 +904,10 @@ public class DefaultCodegen { p.required = param.getRequired(); p.jsonSchema = Json.pretty(param); + if(param instanceof QueryParameter) { + p.defaultValue = ((QueryParameter)param).getDefaultValue(); + } + if(param instanceof SerializableParameter) { SerializableParameter qp = (SerializableParameter) param; Property property = null; From e4f5243e54f806762809681bd1251f2eb22558b5 Mon Sep 17 00:00:00 2001 From: Fake Bob Dobbs Date: Fri, 15 May 2015 17:17:46 -0400 Subject: [PATCH 2/4] add defaultValues value to the SpringMVC RequestParam annotation --- .../src/main/resources/JavaSpringMVC/queryParams.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/queryParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/queryParams.mustache index 313289d9eaf..3bb2afcb6cd 100755 --- a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/queryParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/queryParams.mustache @@ -1 +1 @@ -{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{defaultValue}}}"{{/defaultValue}}) @RequestParam(value = "{{paramName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}) {{{dataType}}} {{paramName}}{{/isQueryParam}} \ No newline at end of file +{{#isQueryParam}}@ApiParam(value = "{{{description}}}"{{#required}}, required = true{{/required}}{{#allowableValues}}, allowableValues = "{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue = "{{{defaultValue}}}"{{/defaultValue}}) @RequestParam(value = "{{paramName}}"{{#required}}, required = true{{/required}}{{^required}}, required = false{{/required}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{{dataType}}} {{paramName}}{{/isQueryParam}} From b783363c56a0297cec92eda86aeb86277ed9272b Mon Sep 17 00:00:00 2001 From: Fake Bob Dobbs Date: Tue, 19 May 2015 11:45:48 -0400 Subject: [PATCH 3/4] move the defaultValues for Forms and Headers as well --- .../java/com/wordnik/swagger/codegen/DefaultCodegen.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 966cc817863..d6906187c3b 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -904,8 +904,13 @@ public class DefaultCodegen { p.required = param.getRequired(); p.jsonSchema = Json.pretty(param); + // move the defaultValue for headers, forms and params if(param instanceof QueryParameter) { p.defaultValue = ((QueryParameter)param).getDefaultValue(); + } else if(param instanceof HeaderParameter) { + p.defaultValue = ((HeaderParameter)param).getDefaultValue(); + } else if(param instanceof FormParameter) { + p.defaultValue = ((FormParameter)param).getDefaultValue(); } if(param instanceof SerializableParameter) { From a55c03013d5658a5c28aa6f1fdf5cbe85d56cb0d Mon Sep 17 00:00:00 2001 From: Fake Bob Dobbs Date: Tue, 19 May 2015 11:47:34 -0400 Subject: [PATCH 4/4] use the defaultValue for spring mvc RequestHeader annotations; carry over the required value if set for RequestPart annotations --- .../src/main/resources/JavaSpringMVC/formParams.mustache | 2 +- .../src/main/resources/JavaSpringMVC/headerParams.mustache | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/formParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/formParams.mustache index 83c928ea92e..402a684f86a 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/formParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/formParams.mustache @@ -1,2 +1,2 @@ {{#isFormParam}}{{#notFile}} -@ApiParam(value = "{{{description}}}"{{#required}}, required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}})@RequestPart("{{paramName}}") {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@ApiParam(value = "file detail") @RequestPart("file") MultipartFile fileDetail{{/isFile}}{{/isFormParam}} \ No newline at end of file +@ApiParam(value = "{{{description}}}"{{#required}}, required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) @RequestPart(value="{{paramName}}"{{#required}}, required=true{{/required}}{{^required}}, required=false{{/required}}) {{{dataType}}} {{paramName}}{{/notFile}}{{#isFile}}@ApiParam(value = "file detail") @RequestPart("file") MultipartFile fileDetail{{/isFile}}{{/isFormParam}} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/headerParams.mustache b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/headerParams.mustache index dd0ea1ad4ce..7e500ac33cb 100644 --- a/modules/swagger-codegen/src/main/resources/JavaSpringMVC/headerParams.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaSpringMVC/headerParams.mustache @@ -1 +1 @@ -{{#isHeaderParam}}@ApiParam(value = "{{{description}}}" {{#required}},required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}})@RequestHeader("{{paramName}}") {{{dataType}}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file +{{#isHeaderParam}}@ApiParam(value = "{{{description}}}" {{#required}},required=true{{/required}} {{#allowableValues}}, allowableValues="{{{allowableValues}}}"{{/allowableValues}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) @RequestHeader(value="{{paramName}}", required={{#required}}true{{/required}}{{^required}}false{{/required}}{{#defaultValue}}, defaultValue="{{{defaultValue}}}"{{/defaultValue}}) {{{dataType}}} {{paramName}}{{/isHeaderParam}} \ No newline at end of file