From ea9194db54932e554b69f9a43c65c45908fb174f Mon Sep 17 00:00:00 2001 From: ranger-ross Date: Thu, 12 Dec 2024 22:30:38 +0900 Subject: [PATCH] Added path param normalization for Rust clients --- .../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 a82a3e0f96ce..1ace0e10ef23 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 OperationsMap postProcessOperationsWithModels(OperationsMap objs, 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));