diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index cdb8242183c08..a34904331a3bf 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -4746,9 +4746,7 @@ public CodegenOperation fromOperation(String path, if (contentType != null) { contentType = contentType.toLowerCase(Locale.ROOT); } - if (contentType != null && - ((!(this instanceof RustAxumServerCodegen) && contentType.startsWith("application/x-www-form-urlencoded")) || - contentType.startsWith("multipart"))) { + if (isFormMimeType(contentType)) { // process form parameters formParams = fromRequestBodyToFormParameters(requestBody, imports); op.isMultipart = contentType.startsWith("multipart"); @@ -7007,9 +7005,7 @@ public boolean hasFormParameter(Operation operation) { } for (String consume : consumesInfo) { - if (consume != null && - (consume.toLowerCase(Locale.ROOT).startsWith("application/x-www-form-urlencoded") || - consume.toLowerCase(Locale.ROOT).startsWith("multipart"))) { + if (isFormMimeType(consume)) { return true; } } @@ -8339,6 +8335,16 @@ public int hashCode() { } } + protected boolean isFormMimeType(String mime) { + if (mime == null) { + return false; + } + + mime = mime.toLowerCase(Locale.ROOT); + return mime.startsWith("application/x-www-form-urlencoded") + || mime.startsWith("multipart"); // ← maybe multipart/form-data would be more accurate? + } + /** * Check if the given MIME is a JSON MIME. * JSON MIME examples: diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java index 4b36b305c0972..5a94b29c2cff3 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java @@ -414,6 +414,11 @@ boolean isMimetypePlain(String mimetype) { isMimetypeMultipartRelated(mimetype)); } + @Override protected boolean isFormMimeType(String mime) { + return mime != null + && mime.toLowerCase(Locale.ROOT).startsWith("multipart"); // ← maybe multipart/form-data would be more accurate? + } + @Override public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, List servers) { CodegenOperation op = super.fromOperation(path, httpMethod, operation, servers);