diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java b/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java index 7db5c9403a3..c3d3cb70334 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenOperation.java @@ -21,6 +21,7 @@ public class CodegenOperation { public List responses = new ArrayList(); public Set imports = new HashSet(); + public List> examples; // legacy support public String nickname; diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java b/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java index 7151764bec2..92b908759b1 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenResponse.java @@ -1,8 +1,10 @@ package com.wordnik.swagger.codegen; +import java.util.*; public class CodegenResponse { public String code, message; public Boolean hasMore; + public List> examples; Object schema; } \ No newline at end of file diff --git a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 22a9805d09a..33dd3a09b6c 100644 --- a/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -115,7 +115,10 @@ public class DefaultCodegen { } public String toVarName(String name) { - return name; + if(reservedWords.contains(name)) + return escapeReservedWord(name); + else + return name; } public String toParamName(String name) { @@ -314,7 +317,10 @@ public class DefaultCodegen { public CodegenModel fromModel(String name, Model model) { CodegenModel m = new CodegenModel(); - m.name = name; + if(reservedWords.contains(name)) + m.name = escapeReservedWord(name); + else + m.name = name; m.description = model.getDescription(); m.classname = toModelName(name); m.classVarName = toVarName(name); @@ -498,12 +504,13 @@ public class DefaultCodegen { String operationId = operation.getOperationId(); if(operationId == null) { - path = path.replaceAll("\\{", ""); - path = path.replaceAll("\\}", ""); - String[] parts = (path + "/" + httpMethod).split("/"); + String tmpPath = path; + tmpPath = tmpPath.replaceAll("\\{", ""); + tmpPath = tmpPath.replaceAll("\\}", ""); + String[] parts = (tmpPath + "/" + httpMethod).split("/"); StringBuilder builder = new StringBuilder(); - if("/".equals(path)) { - // must be root path + if("/".equals(tmpPath)) { + // must be root tmpPath builder.append("root"); } for(int i = 0; i < parts.length; i++) { @@ -575,6 +582,7 @@ public class DefaultCodegen { r.code = responseCode; r.message = response.getDescription(); r.schema = response.getSchema(); + r.examples = toExamples(response.getExamples()); op.responses.add(r); } for(int i = 0; i < op.responses.size() - 1; i++) { @@ -600,7 +608,7 @@ public class DefaultCodegen { else op.returnBaseType = cm.baseType; } - + op.examples = toExamples(methodResponse.getExamples()); op.defaultResponse = toDefaultValue(responseProperty); op.returnType = cm.datatype; if(cm.isContainer != null) { @@ -750,6 +758,22 @@ public class DefaultCodegen { return op; } + protected List> toExamples(Map examples) { + if(examples == null) + return null; + + List> output = new ArrayList>(); + for(String key: examples.keySet()) { + String value = examples.get(key); + + Map kv = new HashMap(); + kv.put("contentType", key); + kv.put("example", value); + output.add(kv); + } + return output; + } + private List addHasMore(List objs) { if(objs != null) { for(int i = 0; i < objs.size(); i++) {