diff --git a/samples/server-generator/java-jaxrs/templates/api.mustache b/samples/server-generator/java-jaxrs/templates/api.mustache index 80b53bc70e9..f704af8c38b 100644 --- a/samples/server-generator/java-jaxrs/templates/api.mustache +++ b/samples/server-generator/java-jaxrs/templates/api.mustache @@ -20,8 +20,10 @@ public class {{className}} { @{{httpMethod}} @Path("{{path}}") @ApiOperation(value = "{{{summary}}}", notes = "{{{notes}}}", responseClass = "{{{returnType}}}") - @ApiErrors(value = { @ApiError(code = 400, reason = "Invalid ID supplied"), - @ApiError(code = 404, reason = "Pet not found") }) + @ApiErrors(value = { {{#errorList}} @ApiError(code = {{{code}}}, reason = "{{{reason}}}"){{#hasMore}},{{/hasMore}} + {{/errorList}} + }) + public Response {{nickname}}( {{#allParams}} {{#queryParameter}} diff --git a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala index f1a58b02cbf..5bba5bfc8d5 100644 --- a/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala +++ b/src/main/scala/com/wordnik/swagger/codegen/Codegen.scala @@ -81,10 +81,12 @@ class Codegen(config: CodegenConfig) { lb }) opList += apiToMap(apiPath, operation) + CoreUtils.extractModelNames(operation).foreach(i => allImports += i) } }) } + case None => } @@ -206,6 +208,18 @@ class Codegen(config: CodegenConfig) { val headerParams = new ListBuffer[AnyRef] val bodyParams = new ListBuffer[AnyRef] var paramList = new ListBuffer[HashMap[String, AnyRef]] + var errorList = new ListBuffer[HashMap[String, AnyRef]] + + if (operation.errorResponses != null) { + operation.errorResponses.foreach(param => { + val params = new HashMap[String, AnyRef] + params += "code" -> param.code.toString() + params += "reason" -> param.reason + params += "hasMore" -> "true" + errorList += params + }) + + } if (operation.parameters != null) { operation.parameters.foreach(param => { @@ -284,6 +298,10 @@ class Codegen(config: CodegenConfig) { case 0 => case _ => pathParams.last.asInstanceOf[HashMap[String, String]] -= "hasMore" } + errorList.size match{ + case 0 => + case _ => errorList.last.asInstanceOf[HashMap[String, String]] -= "hasMore" + } val sp = { val lb = new ListBuffer[AnyRef] @@ -325,6 +343,7 @@ class Codegen(config: CodegenConfig) { "queryParams" -> queryParams.toList, "headerParams" -> headerParams.toList, "requiredParams" -> requiredParams.toList, + "errorList" -> errorList, "httpMethod" -> operation.httpMethod.toUpperCase, operation.httpMethod.toLowerCase -> "true") if (requiredParams.size > 0) properties += "requiredParamCount" -> requiredParams.size.toString