add logic to camelize path variables for feign client (#5301)

This commit is contained in:
wing328 2017-04-02 19:01:43 +08:00 committed by GitHub
parent ce41a343d8
commit 2e8eea9c18

View File

@ -242,14 +242,14 @@ public class JavaClientCodegen extends AbstractJavaCodegen
@Override
public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
super.postProcessOperations(objs);
if(usesAnyRetrofitLibrary()) {
if (usesAnyRetrofitLibrary()) {
Map<String, Object> operations = (Map<String, Object>) objs.get("operations");
if (operations != null) {
List<CodegenOperation> ops = (List<CodegenOperation>) 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<String, Object> operations = (Map<String, Object>) objs.get("operations");
List<CodegenOperation> operationList = (List<CodegenOperation>) 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;
}