From d45cb6511f77aa0473882ba3b9f5de6c26e97b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul-Etienne=20Fran=C3=A7ois?= Date: Fri, 18 Feb 2022 04:50:15 +0100 Subject: [PATCH] [Java][Native] Fix an issue leading to an altered String parameter when consuming formatted strings like XML (#11640) * Fix the generated request builder when using a string body parameter * Update the samples according to the fix for #11638 --- .../src/main/resources/Java/libraries/native/api.mustache | 5 +++++ .../src/main/java/org/openapitools/client/api/FakeApi.java | 7 +------ .../src/main/java/org/openapitools/client/api/FakeApi.java | 7 +------ 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache index 86fb8dd899c..ede8e5b9566 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache @@ -346,12 +346,17 @@ public class {{classname}} { localVarRequestBuilder.header("Accept", "{{#hasProduces}}{{#produces}}{{mediaType}}{{^-last}}, {{/-last}}{{/produces}}{{/hasProduces}}{{#hasProduces}}{{^produces}}application/json{{/produces}}{{/hasProduces}}{{^hasProduces}}application/json{{/hasProduces}}"); {{#bodyParam}} + {{#isString}} + localVarRequestBuilder.method("{{httpMethod}}", HttpRequest.BodyPublishers.ofString({{paramName}})); + {{/isString}} + {{^isString}} try { byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes({{paramName}}); localVarRequestBuilder.method("{{httpMethod}}", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); } catch (IOException e) { throw new ApiException(e); } + {{/isString}} {{/bodyParam}} {{^bodyParam}} localVarRequestBuilder.method("{{httpMethod}}", HttpRequest.BodyPublishers.noBody()); diff --git a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeApi.java index b600572f511..8f6c3721de8 100644 --- a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeApi.java @@ -519,12 +519,7 @@ public class FakeApi { localVarRequestBuilder.header("Content-Type", "application/json"); localVarRequestBuilder.header("Accept", "*/*"); - try { - byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(body); - localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); - } catch (IOException e) { - throw new ApiException(e); - } + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofString(body)); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java index 665df72be2f..20ce3349193 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java @@ -445,12 +445,7 @@ public class FakeApi { localVarRequestBuilder.header("Content-Type", "application/json"); localVarRequestBuilder.header("Accept", "*/*"); - try { - byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(body); - localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody)); - } catch (IOException e) { - throw new ApiException(e); - } + localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofString(body)); if (memberVarReadTimeout != null) { localVarRequestBuilder.timeout(memberVarReadTimeout); }