From 3a09ebbb7bac4e648d5d35ab050fef43536bdc53 Mon Sep 17 00:00:00 2001 From: Ross Date: Sat, 14 Dec 2024 14:37:15 +0900 Subject: [PATCH] Added path param normalization for Rust clients (#20309) --- .../codegen/languages/RustClientCodegen.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java index a82a3e0f96c..1ace0e10ef2 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustClientCodegen.java @@ -604,6 +604,20 @@ public class RustClientCodegen extends AbstractRustCodegen implements CodegenCon OperationMap objectMap = objs.getOperations(); List operations = objectMap.getOperation(); for (CodegenOperation operation : operations) { + if (operation.pathParams != null && operation.pathParams.size() > 0) { + for (var pathParam : operation.pathParams) { + if (!pathParam.baseName.contains("-")) { + continue; + } + + var newName = pathParam.baseName.replace("-", "_"); + LOGGER.info(pathParam.baseName + " cannot be used as a path param. Renamed to " + newName); + + operation.path = operation.path.replace("{" + pathParam.baseName + "}", "{" + newName + "}"); + pathParam.baseName = newName; + } + } + // http method verb conversion, depending on client library (e.g. Hyper: PUT => Put, Reqwest: PUT => put) if (HYPER_LIBRARY.equals(getLibrary())) { operation.httpMethod = StringUtils.camelize(operation.httpMethod.toLowerCase(Locale.ROOT));