diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java index acfd7d78469..898474c44af 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/JavaClientCodegen.java @@ -242,14 +242,14 @@ public class JavaClientCodegen extends AbstractJavaCodegen @Override public Map postProcessOperations(Map objs) { super.postProcessOperations(objs); - if(usesAnyRetrofitLibrary()) { + if (usesAnyRetrofitLibrary()) { Map operations = (Map) objs.get("operations"); if (operations != null) { List ops = (List) operations.get("operation"); for (CodegenOperation operation : ops) { if (operation.hasConsumes == Boolean.TRUE) { - if ( isMultipartType(operation.consumes) ) { + if (isMultipartType(operation.consumes)) { operation.isMultipart = Boolean.TRUE; } else { @@ -264,6 +264,27 @@ public class JavaClientCodegen extends AbstractJavaCodegen } } } + + // camelize path variables for Feign client + if ("feign".equals(getLibrary())) { + Map operations = (Map) objs.get("operations"); + List operationList = (List) operations.get("operation"); + for (CodegenOperation op : operationList) { + String path = new String(op.path); + String[] items = path.split("/", -1); + String opsPath = ""; + int pathParamIndex = 0; + + for (int i = 0; i < items.length; ++i) { + if (items[i].matches("^\\{(.*)\\}$")) { // wrap in {} + // camelize path variable + items[i] = "{" + camelize(items[i].substring(1, items[i].length()-1), true) + "}"; + } + } + op.path = StringUtils.join(items, "/"); + } + } + return objs; }