diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/restclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/restclient/ApiClient.mustache index f55cd57761cf..3dd26153003f 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/restclient/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/restclient/ApiClient.mustache @@ -6,6 +6,7 @@ package {{invokerPackage}}; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator; {{/withXml}} +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -503,6 +504,36 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/restclient/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/restclient/api.mustache index 5604a46b30c6..30b8b13298dc 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/restclient/api.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/restclient/api.mustache @@ -108,10 +108,28 @@ public class {{classname}} { final MultiValueMap formParams = new LinkedMultiValueMap<>(); {{#hasQueryParams}} - {{#queryParams}}{{#isExplode}}{{#hasVars}}{{#vars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}.{{getter}}())); - {{/vars}}{{/hasVars}}{{^hasVars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); - {{/hasVars}}{{/isExplode}}{{^isExplode}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); - {{/isExplode}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}} + {{#queryParams}} + {{#queryIsJsonMimeType}} + queryParams.putAll(apiClient.parameterToMultiValueMapJson({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/queryIsJsonMimeType}} + {{^queryIsJsonMimeType}} + {{#isExplode}} + {{#hasVars}} + {{#vars}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}.{{getter}}())); + {{/vars}} + {{/hasVars}} + {{^hasVars}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/hasVars}} + {{/isExplode}} + {{^isExplode}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/isExplode}} + {{/queryIsJsonMimeType}} + {{/queryParams}} + {{/hasQueryParams}} + {{#hasHeaderParams}} {{#headerParams}} if ({{paramName}} != null) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache index 2abc149ccfcb..9bc558f1f41e 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/ApiClient.mustache @@ -2,6 +2,7 @@ package {{invokerPackage}}; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -446,6 +447,36 @@ public class ApiClient{{#jsr310}} extends JavaTimeFormatter{{/jsr310}} { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache index bdfac5271901..7c8e49209a06 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/webclient/api.mustache @@ -110,10 +110,28 @@ public class {{classname}} { final MultiValueMap formParams = new LinkedMultiValueMap(); {{#hasQueryParams}} - {{#queryParams}}{{#isExplode}}{{#hasVars}}{{#vars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}.{{getter}}())); - {{/vars}}{{/hasVars}}{{^hasVars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); - {{/hasVars}}{{/isExplode}}{{^isExplode}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); - {{/isExplode}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}} + {{#queryParams}} + {{#queryIsJsonMimeType}} + queryParams.putAll(apiClient.parameterToMultiValueMapJson({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/queryIsJsonMimeType}} + {{^queryIsJsonMimeType}} + {{#isExplode}} + {{#hasVars}} + {{#vars}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}.{{getter}}())); + {{/vars}} + {{/hasVars}} + {{^hasVars}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/hasVars}} + {{/isExplode}} + {{^isExplode}} + queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}})); + {{/isExplode}} + {{/queryIsJsonMimeType}} + {{/queryParams}} + {{/hasQueryParams}} + {{#hasHeaderParams}} {{#headerParams}} if ({{paramName}} != null) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index afd564ec09a0..0b84b410fae0 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -47,6 +47,7 @@ import org.openapitools.codegen.model.OperationsMap; import org.openapitools.codegen.testutils.ConfigAssert; import org.testng.annotations.DataProvider; +import org.testng.annotations.Parameters; import org.testng.annotations.Test; import java.io.File; @@ -73,6 +74,8 @@ public class JavaClientCodegenTest { + private static final String JAVA_GENERATOR = "java"; + // This is the kind of information that ideally would be defined and available system-wide @Getter enum Library { @@ -299,7 +302,7 @@ public void testAdditionalPropertiesPutForConfigValues() throws Exception { public void testGeneratedAuthClassesJersey() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.JERSEY3) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/petstore-with-fake-endpoints-models-for-testing-with-http-signature.yaml") @@ -322,7 +325,7 @@ public void testImportMappingResult() { final CodegenConfigurator configurator = new CodegenConfigurator() .addTypeMapping("OffsetDateTime", "Instant") .addImportMapping("OffsetDateTime", "java.time.Instant") - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setInputSpec("src/test/resources/3_0/echo_api.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -414,7 +417,7 @@ public void updateCodegenPropertyEnumWithCustomNames() { public void testGeneratePing() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.OKHTTP_GSON) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/ping.yaml") @@ -471,7 +474,7 @@ public void testGeneratePing() { public void testGeneratePingSomeObj() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.MODEL_PACKAGE, "zz.yyyy.model.xxxx") .addAdditionalProperty(CodegenConstants.API_PACKAGE, "zz.yyyy.api.xxxx") .addAdditionalProperty(CodegenConstants.INVOKER_PACKAGE, "zz.yyyy.invoker.xxxx") @@ -534,7 +537,7 @@ public void testGeneratePingSomeObj() { public void testJdkHttpClient() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/ping.yaml") @@ -561,7 +564,7 @@ public void testJdkHttpClient() { public void testJdkHttpClientWithUseBeanValidationEnabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_BEANVALIDATION, true) @@ -580,7 +583,7 @@ public void testJdkHttpClientWithUseBeanValidationEnabled() { public void testJdkHttpClientWithAndWithoutDiscriminator() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(CodegenConstants.MODEL_PACKAGE, "xyz.abcdef.model") @@ -603,7 +606,7 @@ public void testJdkHttpClientWithAndWithoutDiscriminator() { public void testJdkHttpAsyncClient() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.ASYNC_NATIVE, true) .setLibrary(JavaClientCodegen.NATIVE) @@ -685,7 +688,7 @@ public void testAuthorizationScopeValues_Issue392() { public void testAuthorizationScopeValues_Issue6733() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTEASY) .setValidateSpec(false) .setInputSpec("src/test/resources/3_0/regression-6734.yaml") @@ -709,7 +712,7 @@ public void testAuthorizationScopeValues_Issue6733() { public void testTypedAndNonTypedComposedSchemaGeneration_3_1() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTEASY) .setValidateSpec(false) .setInputSpec("src/test/resources/3_1/composed-schemas-with-and-without-type.yaml") @@ -732,7 +735,7 @@ public void testTypedAndNonTypedComposedSchemaGeneration_3_1() { public void testMultiPartSpecifiesFileName_Issue17367() throws IOException { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTEASY) .setValidateSpec(false) .setInputSpec("src/test/resources/3_0/issue-17367.yaml") @@ -818,7 +821,7 @@ public void testFreeFormObjects() { public void testSchemaMapping() throws IOException { final Path output = newTempFolder(); final ClientOptInput clientOptInput = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTEASY) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setSchemaMappings(Map.of("TypeAlias", "foo.bar.TypeAlias")) @@ -868,7 +871,7 @@ public void testBearerAuth() { public void testVertXAuthInfoWithHyphenSeparatedSecurityScheme() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.VERTX) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/ping-with-hyphen-separated-security-scheme.yaml") @@ -1080,7 +1083,7 @@ public void testAnyType() { public void testRestTemplateFormMultipart() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/form-multipart-binary-array.yaml") @@ -1116,7 +1119,7 @@ public void testRestTemplateFormMultipart() { public void testWebClientFormMultipart() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/form-multipart-binary-array.yaml") @@ -1146,7 +1149,7 @@ public void testWebClientFormMultipart() { public void shouldGenerateBlockingAndNoBlockingOperationsForWebClient() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.WEBCLIENT_BLOCKING_OPERATIONS, true) .setLibrary(JavaClientCodegen.WEBCLIENT) @@ -1176,7 +1179,7 @@ public void shouldGenerateBlockingAndNoBlockingOperationsForWebClient() { public void testAllowModelWithNoProperties() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.OKHTTP_GSON) .setInputSpec("src/test/resources/2_0/emptyBaseModel.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1205,7 +1208,7 @@ public void testAllowModelWithNoProperties() { public void testRestTemplateWithUseAbstractionForFiles() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.RESTTEMPLATE) @@ -1292,7 +1295,7 @@ private Optional getByCriteria(List codegenO public void testCustomMethodParamsAreCamelizedWhenUsingFeign() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(FEIGN) .setInputSpec("src/test/resources/3_0/issue_7791.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1320,7 +1323,7 @@ public void testCustomMethodParamsAreCamelizedWhenUsingFeign() { public void testCharsetInContentTypeCorrectlyEncodedForFeignApi_issue19895() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(FEIGN) .setInputSpec("src/test/resources/3_0/issue_19895.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1353,7 +1356,7 @@ public void testCharsetInContentTypeCorrectlyEncodedForFeignApi_issue19895() { public void testWebClientWithUseAbstractionForFiles() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.WEBCLIENT) @@ -1386,7 +1389,8 @@ public void testWebClientWithUseAbstractionForFiles() { @Test public void testRestTemplateWithFreeFormInQueryParameters() { final Path output = newTempFolder(); - final CodegenConfigurator configurator = new CodegenConfigurator().setGeneratorName("java") + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue8352.yaml") @@ -1404,7 +1408,8 @@ public void testRestTemplateWithFreeFormInQueryParameters() { @Test public void testWebClientWithFreeFormInQueryParameters() { final Path output = newTempFolder(); - final CodegenConfigurator configurator = new CodegenConfigurator().setGeneratorName("java") + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue8352.yaml") @@ -1424,7 +1429,7 @@ public void testWebClientWithFreeFormInQueryParameters() { public void testNativeClientWhiteSpacePathParamEncoding() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue11242.yaml") @@ -1447,7 +1452,7 @@ public void testNativeClientWhiteSpacePathParamEncoding() { public void testNativeClientExplodedQueryParamObject() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue4808.yaml") @@ -1470,7 +1475,7 @@ public void testNativeClientExplodedQueryParamObject() { public void testDefaultMicroprofileRestClientVersion() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/3_0/petstore.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1494,7 +1499,7 @@ public void testMicroprofileRestClientVersion_1_4_1() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(JavaClientCodegen.MICROPROFILE_REST_CLIENT_VERSION, "1.4.1")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/3_0/petstore.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1523,7 +1528,7 @@ public void testMicroprofileRestClientIncorrectVersion() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(JavaClientCodegen.MICROPROFILE_REST_CLIENT_VERSION, "incorrectVersion")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/3_0/petstore.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1538,7 +1543,7 @@ public void testMicroprofileRestClientVersion_3_0() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(JavaClientCodegen.MICROPROFILE_REST_CLIENT_VERSION, "3.0")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/3_0/petstore.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1562,7 +1567,7 @@ public void testMicroprofileGenerateCorrectJsonbCreator_issue12622() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(JavaClientCodegen.MICROPROFILE_REST_CLIENT_VERSION, "3.0")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/bugs/issue_12622.json") .setOutputDir(output.toString().replace("\\", "/")); @@ -1593,9 +1598,8 @@ public void testMicroprofileGenerateCorrectJacksonGenerator_issue18336() throws output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setAdditionalProperties(properties) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.MICROPROFILE) .setInputSpec("src/test/resources/bugs/issue_18336.yaml") .setOutputDir(output.getAbsolutePath().replace("\\", "/")); @@ -1620,7 +1624,7 @@ public void testJavaClientDefaultValues_issueNoNumber() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(JavaClientCodegen.MICROPROFILE_REST_CLIENT_VERSION, "3.0")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setOutputDir(output.toString().replace("\\", "/")) .setInputSpec("src/test/resources/bugs/java-codegen-empty-array-as-default-value/issue_wrong-default.yaml"); @@ -1644,7 +1648,7 @@ public void testWebClientJsonCreatorWithNullable_issue12790() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setAdditionalProperties(Map.of(AbstractJavaCodegen.OPENAPI_NULLABLE, "true")) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setInputSpec("src/test/resources/bugs/issue_12790.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1665,7 +1669,7 @@ public void testWebClientJsonCreatorWithNullable_issue12790() { public void testRestTemplateResponseTypeWithUseAbstractionForFiles() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) @@ -1689,7 +1693,7 @@ void testExtraAnnotations(Library library) { final Path output = newTempFolder(); final String outputPath = output.toString().replace('\\', '/'); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library.value) .setAdditionalProperties(Map.of(CXFServerFeatures.LOAD_TEST_DATA_FROM_FILE, "true")) .setInputSpec("src/test/resources/3_0/issue_11772.yml") @@ -1710,7 +1714,8 @@ void testExtraAnnotations(Library library) { @Test public void testReferencedHeader2() { final Path output = newTempFolder(); - final CodegenConfigurator configurator = new CodegenConfigurator().setGeneratorName("java") + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName(JAVA_GENERATOR) .setAdditionalProperties(Map.of(BeanValidationFeatures.USE_BEANVALIDATION, "true")) .setInputSpec("src/test/resources/3_0/issue-11340.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -1733,7 +1738,7 @@ public void testReferencedHeader2() { public void testReturnTypeMapping() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setInputSpec("src/test/resources/3_0/issue14525.yaml") .addTypeMapping("array", "Stack") .addImportMapping("Stack", "java.util.Stack") @@ -1749,7 +1754,7 @@ public void testReturnTypeMapping() { public void testNativeClientExplodedQueryParamWithArrayProperty() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/exploded-query-param-array.yaml") @@ -1767,7 +1772,7 @@ public void testNativeClientExplodedQueryParamWithArrayProperty() { public void testJdkHttpClientWithAndWithoutParentExtension() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) // use default `okhttp-gson` //.setLibrary(JavaClientCodegen.NATIVE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") @@ -1966,7 +1971,7 @@ private static Map generateFromContract( final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library) .setAdditionalProperties(properties) .setInputSpec(pathToSpecification) @@ -2073,7 +2078,7 @@ public void testForJavaNativeClientOverrideSetter() { public void testDeprecatedProperty() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.OKHTTP_GSON) .setInputSpec("src/test/resources/3_0/deprecated-properties.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -2093,7 +2098,7 @@ public void testDeprecatedProperty() { public void testDeprecatedPropertyJersey3() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.JERSEY3) .setInputSpec("src/test/resources/3_0/deprecated-properties.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -2122,7 +2127,7 @@ public static Object[][] librariesToRegressionTestForIssue15684() { public void shouldNotAddAdditionalModelAnnotationsToAbstractOpenApiSchema_issue15684(String library) { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library) .addAdditionalProperty(AbstractJavaCodegen.ADDITIONAL_MODEL_TYPE_ANNOTATIONS, "@annotation1;@annotation2") .setInputSpec("src/test/resources/3_0/deprecated-properties.yaml") @@ -2145,7 +2150,7 @@ public void shouldNotAddAdditionalModelAnnotationsToAbstractOpenApiSchema_issue1 public void testRestTemplateWithGeneratedClientAsBeanDisabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.GENERATE_CLIENT_AS_BEAN, false) .setLibrary(JavaClientCodegen.RESTTEMPLATE) @@ -2163,7 +2168,7 @@ public void testRestTemplateWithGeneratedClientAsBeanDisabled() { public void testRestTemplateWithGeneratedClientAsBeanEnabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.GENERATE_CLIENT_AS_BEAN, true) .setLibrary(JavaClientCodegen.RESTTEMPLATE) @@ -2181,7 +2186,7 @@ public void testRestTemplateWithGeneratedClientAsBeanEnabled() { public void testRestTemplateWithUseBeanValidationEnabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_BEANVALIDATION, true) @@ -2199,7 +2204,7 @@ public void testRestTemplateWithUseBeanValidationEnabled() { public void testRestTemplateWithUseBeanValidationDisabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_BEANVALIDATION, false) @@ -2217,7 +2222,7 @@ public void testRestTemplateWithUseBeanValidationDisabled() { public void testRestTemplateWithPerformBeanValidationEnabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.PERFORM_BEANVALIDATION, true) @@ -2235,7 +2240,7 @@ public void testRestTemplateWithPerformBeanValidationEnabled() { public void testRestTemplateWithPerformBeanValidationDisabled() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.PERFORM_BEANVALIDATION, false) .setLibrary(JavaClientCodegen.RESTTEMPLATE) @@ -2252,7 +2257,7 @@ public void testRestTemplateWithPerformBeanValidationDisabled() { @Test public void testLogicToAvoidStackOverflow() { final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.GENERATE_CLIENT_AS_BEAN, true) .setLibrary(JavaClientCodegen.RESTTEMPLATE) @@ -2268,7 +2273,7 @@ public void testLogicToAvoidStackOverflow() { public void testWebClientSupportListOfStringReturnType_issue7118() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.WEBCLIENT) @@ -2346,7 +2351,7 @@ public void testMapOfInnerEnum_issue19393() { public void testWebClientResponseTypeWithUseAbstractionForFiles_issue16589() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.WEBCLIENT) @@ -2502,7 +2507,7 @@ public void testMicroprofileHandleURIEnum() { private void testHandleURIEnum(String library, String[] expectedInnerEnumLines, String[] expectedEnumLines) { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library) .setInputSpec("src/test/resources/3_0/enum-and-inner-enum-uri.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -2525,7 +2530,7 @@ private void testHandleURIEnum(String library, String[] expectedInnerEnumLines, public void testQueryParamsExploded_whenQueryParamIsNull() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTTEMPLATE) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue_17555.yaml") @@ -2602,7 +2607,7 @@ public void generateAllArgsConstructor_REFACTOR_ALLOF_WITH_PROPERTIES_ONLY() { public void testRestClientFormMultipart() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/form-multipart-binary-array.yaml") @@ -2632,7 +2637,7 @@ public void testRestClientFormMultipart() { public void testRestClientWithUseAbstractionForFiles() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.RESTCLIENT) @@ -2661,7 +2666,8 @@ public void testRestClientWithUseAbstractionForFiles() { @Test public void testRestClientWithFreeFormInQueryParameters() { final Path output = newTempFolder(); - final CodegenConfigurator configurator = new CodegenConfigurator().setGeneratorName("java") + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of(CodegenConstants.API_PACKAGE, "xyz.abcdef.api")) .setInputSpec("src/test/resources/3_0/issue8352.yaml") @@ -2678,7 +2684,7 @@ public void testRestClientJsonCreatorWithNullable_issue12790() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .addAdditionalProperty(AbstractJavaCodegen.OPENAPI_NULLABLE, "true") - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setInputSpec("src/test/resources/bugs/issue_12790.yaml") .setOutputDir(output.toString().replace("\\", "/")); @@ -2700,7 +2706,7 @@ public void testRestClientJsonCreatorWithNullable_issue12790() { public void testRestClientSupportListOfStringReturnType_issue7118() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.RESTCLIENT) @@ -2727,7 +2733,7 @@ public void testRestClientSupportListOfStringReturnType_issue7118() { public void testRestClientResponseTypeWithUseAbstractionForFiles_issue16589() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .addAdditionalProperty(CodegenConstants.API_PACKAGE, "xyz.abcdef.api") .addAdditionalProperty(JavaClientCodegen.USE_ABSTRACTION_FOR_FILES, true) .setLibrary(JavaClientCodegen.RESTCLIENT) @@ -2797,7 +2803,7 @@ void gsonCodeDoesNotContainJacksonReferences(Library library) { final CodegenConfigurator configurator = new CodegenConfigurator() .addAdditionalProperty(SERIALIZATION_LIBRARY, Serializer.GSON) .addAdditionalProperty(OPENAPI_NULLABLE, "false") - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library.getValue()) .setInputSpec("src/test/resources/3_0/java/autoset_constant.yaml") .setOutputDir(newTempFolder().toString()); @@ -2817,7 +2823,7 @@ void gsonCodeDoesNotContainJacksonReferences(Library library) { @Test void doesNotGenerateJacksonJsonFormatAnnotation_whenLibraryIsGson_andSerializeBigDecimalAsStringIsTrue() { final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.OKHTTP_GSON) .addAdditionalProperty(CodegenConstants.SERIALIZATION_LIBRARY, SERIALIZATION_LIBRARY_GSON) .addAdditionalProperty(CodegenConstants.SERIALIZE_BIG_DECIMAL_AS_STRING, true) @@ -2844,7 +2850,7 @@ void doesNotGenerateJacksonJsonFormatAnnotation_whenLibraryIsGson_andSerializeBi @Test void generatesJacksonJsonFormatAnnotation_whenLibraryIsJackson_andSerializeBigDecimalAsStringIsTrue() { final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .addAdditionalProperty(CodegenConstants.SERIALIZATION_LIBRARY, SERIALIZATION_LIBRARY_JACKSON) .addAdditionalProperty(CodegenConstants.SERIALIZE_BIG_DECIMAL_AS_STRING, true) @@ -2881,7 +2887,7 @@ void shouldGenerateCorrectXmlAnnotations(Library library) { .addGlobalProperty(CodegenConstants.MODELS, "Pet") .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") .setLibrary(library.value) .setOutputDir(newTempFolder().toString()); @@ -3021,7 +3027,7 @@ void shouldGenerateCorrectJaxbAnnotations(Library library) { .addGlobalProperty(CodegenConstants.MODELS, "Pet") .addGlobalProperty(CodegenConstants.MODEL_DOCS, null) .addGlobalProperty(CodegenConstants.MODEL_TESTS, null) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library.value) .setInputSpec("src/test/resources/3_0/java/xml-annotations-test.yaml") .setOutputDir(newTempFolder().toString()); @@ -3166,7 +3172,7 @@ public void testRestClientWithGeneratedOAuthTokenSuppliers() { public void testRestClientWithXML_issue_19137() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3189,7 +3195,7 @@ public void testRestClientWithXML_issue_19137() { public void testRestClientWithUseSingleRequestParameter_issue_19406() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3216,7 +3222,7 @@ public void testRestClientWithUseSingleRequestParameter_issue_19406() { public void testRestClientWithUseSingleRequestParameter_static_issue_20668() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3252,7 +3258,7 @@ public void testDuplicatedOperationId() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setValidateSpec(false) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.RESTCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3288,7 +3294,7 @@ public void testDuplicatedOperationId() { public void testWebClientWithUseSingleRequestParameter_issue_19407() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3318,7 +3324,7 @@ public void testWebClientWithUseSingleRequestParameter_issue_19407() { public void testWebClientWithUseSingleRequestParameter_static() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3348,7 +3354,7 @@ public void testWebClientWithUseSingleRequestParameter_static() { public void testWebClientWithUseSingleRequestParameter_static_issue_20668() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.WEBCLIENT) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3381,7 +3387,7 @@ public void testGenerateParameterId() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() .setValidateSpec(false) - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api" )) @@ -3411,7 +3417,7 @@ public void callNativeServiceWithEmptyResponseSync() throws IOException { output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(properties) .setInputSpec("src/test/resources/3_0/java/native/issue13968.yaml") @@ -3448,7 +3454,7 @@ public void callNativeServiceWithEmptyResponseAsync() throws IOException { output.deleteOnExit(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JavaClientCodegen.NATIVE) .setAdditionalProperties(properties) .setInputSpec("src/test/resources/3_0/java/native/issue13968.yaml") @@ -3493,7 +3499,7 @@ public void testEnumWithImplements() { public void testClassesAreValidJavaJersey2() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JERSEY2) .setSchemaMappings(Map.of( "A", "some.pkg.A", @@ -3530,7 +3536,7 @@ public void testClassesAreValidJavaJersey2() { public void testClassesAreValidJavaJersey3() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(JERSEY3) .setSchemaMappings(Map.of( "A", "some.pkg.A", @@ -3567,7 +3573,7 @@ public void testClassesAreValidJavaJersey3() { public void testClassesAreValidJavaOkHttpGson() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(OKHTTP_GSON) .setSchemaMappings(Map.of( "A", "some.pkg.A", @@ -3614,7 +3620,7 @@ public void givenComplexObjectHasDefaultValueWhenGenerateThenDefaultAssignmentsA Generator generator = new DefaultGenerator(); CodegenConfigurator configurator = new CodegenConfigurator() .setInputSpec("src/test/resources/3_1/issue_21051.yaml") - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setAdditionalProperties(properties) .setOutputDir(output.getAbsolutePath()); ClientOptInput clientOptInput = configurator.toClientOptInput(); @@ -3670,7 +3676,7 @@ public void visit(MethodCallExpr n, Void arg) { public void testNativeClientWithUseSingleRequestParameter() { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(NATIVE) .setAdditionalProperties(Map.of( CodegenConstants.API_PACKAGE, "xyz.abcdef.api", @@ -3710,7 +3716,7 @@ public void givenOneOfUsesInterfacesAndLibraryNotJacksonWhenGenerateThenOneOfInt Generator generator = new DefaultGenerator(); CodegenConfigurator configurator = new CodegenConfigurator() .setInputSpec("src/test/resources/3_0/oneOf.yaml") - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(library.value) .setAdditionalProperties(properties) .setOutputDir(output.getAbsolutePath()); @@ -3770,7 +3776,7 @@ public static Object[][] sealedInterfaceScenarios() { public void sealedInterfaceScenariosRestClient(String apiFile, Map definitions) { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(RESTCLIENT) .setAdditionalProperties(Map.of( USE_ONE_OF_INTERFACES, "true", @@ -3789,7 +3795,7 @@ public void sealedInterfaceScenariosRestClient(String apiFile, Map definitions) { final Path output = newTempFolder(); final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("java") + .setGeneratorName(JAVA_GENERATOR) .setLibrary(WEBCLIENT) .setAdditionalProperties(Map.of( USE_ONE_OF_INTERFACES, "true", @@ -3805,4 +3811,30 @@ public void sealedInterfaceScenariosWebClient(String apiFile, Map17"); assertFileNotContains(output.resolve("pom.xml"), "1.8"); } + + @Test(dataProvider = "springClients") + public void queryParameterJsonSerialization(String library) { + final Path output = newTempFolder(); + final CodegenConfigurator configurator = new CodegenConfigurator() + .setGeneratorName(JAVA_GENERATOR) + .setLibrary(library) + .setInputSpec("src/test/resources/3_0/echo_api.yaml") + .setOutputDir(output.toString().replace("\\", "/")); + + new DefaultGenerator().opts(configurator.toClientOptInput()).generate(); + assertFileContains( + output.resolve("src/main/java/org/openapitools/client/api/QueryApi.java"), + "queryParams.putAll(apiClient.parameterToMultiValueMapJson(null, \"json_serialized_object_ref_string_query\", jsonSerializedObjectRefStringQuery));" + ); + assertFileContains( + output.resolve("src/main/java/org/openapitools/client/api/QueryApi.java"), + "queryParams.putAll(apiClient.parameterToMultiValueMapJson(ApiClient.CollectionFormat" + + ".valueOf(\"csv\".toUpperCase(Locale.ROOT)), \"json_serialized_object_array_ref_string_query\", jsonSerializedObjectArrayRefStringQuery));" + ); + } + + @DataProvider(name = "springClients") + public static Object[] springClients() { + return new Object[]{RESTCLIENT, WEBCLIENT}; + } } \ No newline at end of file diff --git a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/ApiClient.java index bc4b0fe68889..4bec9dac3031 100644 --- a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -438,6 +439,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/HeaderApi.java b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/HeaderApi.java index e2da6a13ed38..10a8f9068468 100644 --- a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/HeaderApi.java +++ b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/HeaderApi.java @@ -66,7 +66,6 @@ private ResponseSpec testHeaderIntegerBooleanStringEnumsRequestCreation(@jakarta final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - if (integerHeader != null) headerParams.add("integer_header", apiClient.parameterToString(integerHeader)); if (booleanHeader != null) diff --git a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/QueryApi.java b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/QueryApi.java index 22c9a9dd110f..cb2e5d859b7c 100644 --- a/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/QueryApi.java +++ b/samples/client/echo_api/java/restclient/src/main/java/org/openapitools/client/api/QueryApi.java @@ -71,7 +71,7 @@ private ResponseSpec testEnumRefStringRequestCreation(@jakarta.annotation.Nullab queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_nonref_string_query", enumNonrefStringQuery)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_ref_string_query", enumRefStringQuery)); - + final String[] localVarAccepts = { "text/plain" }; @@ -149,7 +149,7 @@ private ResponseSpec testQueryDatetimeDateStringRequestCreation(@jakarta.annotat queryParams.putAll(apiClient.parameterToMultiValueMap(null, "datetime_query", datetimeQuery)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "date_query", dateQuery)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_query", stringQuery)); - + final String[] localVarAccepts = { "text/plain" }; @@ -230,7 +230,7 @@ private ResponseSpec testQueryIntegerBooleanStringRequestCreation(@jakarta.annot queryParams.putAll(apiClient.parameterToMultiValueMap(null, "integer_query", integerQuery)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "boolean_query", booleanQuery)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_query", stringQuery)); - + final String[] localVarAccepts = { "text/plain" }; @@ -312,7 +312,7 @@ private ResponseSpec testQueryStyleDeepObjectExplodeTrueObjectRequestCreation(@j queryParams.putAll(apiClient.parameterToMultiValueMap(null, "photoUrls", queryObject.getPhotoUrls())); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "tags", queryObject.getTags())); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "status", queryObject.getStatus())); - + final String[] localVarAccepts = { "text/plain" }; @@ -383,7 +383,7 @@ private ResponseSpec testQueryStyleDeepObjectExplodeTrueObjectAllOfRequestCreati final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_object", queryObject)); - + final String[] localVarAccepts = { "text/plain" }; @@ -454,7 +454,7 @@ private ResponseSpec testQueryStyleFormExplodeFalseArrayIntegerRequestCreation(@ final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "query_object", queryObject)); - + final String[] localVarAccepts = { "text/plain" }; @@ -525,7 +525,7 @@ private ResponseSpec testQueryStyleFormExplodeFalseArrayStringRequestCreation(@j final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "query_object", queryObject)); - + final String[] localVarAccepts = { "text/plain" }; @@ -596,7 +596,7 @@ private ResponseSpec testQueryStyleFormExplodeTrueArrayStringRequestCreation(@ja final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "values", queryObject.getValues())); - + final String[] localVarAccepts = { "text/plain" }; @@ -672,7 +672,7 @@ private ResponseSpec testQueryStyleFormExplodeTrueObjectRequestCreation(@jakarta queryParams.putAll(apiClient.parameterToMultiValueMap(null, "photoUrls", queryObject.getPhotoUrls())); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "tags", queryObject.getTags())); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "status", queryObject.getStatus())); - + final String[] localVarAccepts = { "text/plain" }; @@ -743,7 +743,7 @@ private ResponseSpec testQueryStyleFormExplodeTrueObjectAllOfRequestCreation(@ja final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_object", queryObject)); - + final String[] localVarAccepts = { "text/plain" }; @@ -814,9 +814,9 @@ private ResponseSpec testQueryStyleJsonSerializationObjectRequestCreation(@jakar final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - queryParams.putAll(apiClient.parameterToMultiValueMap(null, "json_serialized_object_ref_string_query", jsonSerializedObjectRefStringQuery)); - queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "json_serialized_object_array_ref_string_query", jsonSerializedObjectArrayRefStringQuery)); - + queryParams.putAll(apiClient.parameterToMultiValueMapJson(null, "json_serialized_object_ref_string_query", jsonSerializedObjectRefStringQuery)); + queryParams.putAll(apiClient.parameterToMultiValueMapJson(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "json_serialized_object_array_ref_string_query", jsonSerializedObjectArrayRefStringQuery)); + final String[] localVarAccepts = { "text/plain" }; diff --git a/samples/client/others/java/restclient-enum-in-multipart/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/restclient-enum-in-multipart/src/main/java/org/openapitools/client/ApiClient.java index 2e6320218f6f..743b1a070018 100644 --- a/samples/client/others/java/restclient-enum-in-multipart/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/restclient-enum-in-multipart/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -437,6 +438,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/others/java/restclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/restclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java index ec6931f19cb1..a9bdd0e6b478 100644 --- a/samples/client/others/java/restclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/restclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -436,6 +437,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java index 45422eccc043..031730f14566 100644 --- a/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/webclient-sealedInterface/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -415,6 +416,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java index 42db7e7199aa..9a0dc95a935f 100644 --- a/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/others/java/webclient-useAbstractionForFiles/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -415,6 +416,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/restclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java index 9d563925c765..fc8859e5a36a 100644 --- a/samples/client/petstore/java/restclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/restclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -436,6 +437,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java index c19e51efd91d..9dde67aa4412 100644 --- a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -499,6 +500,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java index 0892c9611f23..0fd4ab3c3954 100644 --- a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java @@ -212,7 +212,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@jakarta.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -867,7 +866,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@jakarta.annotation. final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1193,7 +1192,6 @@ private ResponseSpec testEnumParametersRequestCreation(@jakarta.annotation.Nulla queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1318,7 +1316,6 @@ private ResponseSpec testGroupParametersRequestCreation(@jakarta.annotation.Nonn queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1733,7 +1730,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@jakarta. queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java index d2384a985c9c..ea55c5096006 100644 --- a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java @@ -146,7 +146,6 @@ private ResponseSpec deletePetRequestCreation(@jakarta.annotation.Nonnull Long p final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -226,7 +225,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@jakarta.annotation.Nonnull final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -307,7 +306,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@jakarta.annotation.Nonnull S final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java index 97b26ac5a555..84e74f884863 100644 --- a/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/restclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java @@ -442,7 +442,7 @@ private ResponseSpec loginUserRequestCreation(@jakarta.annotation.Nonnull String queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/ApiClient.java index c19e51efd91d..9dde67aa4412 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -499,6 +500,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/FakeApi.java index 102d61198ce9..678101ea5afc 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/FakeApi.java @@ -303,7 +303,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@jakarta.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -1038,7 +1037,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@jakarta.annotation. final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1739,7 +1738,6 @@ private ResponseSpec testEnumParametersRequestCreation(@jakarta.annotation.Nulla queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1988,7 +1986,6 @@ private ResponseSpec testGroupParametersRequestCreation(@jakarta.annotation.Nonn queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -2618,7 +2615,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@jakarta. queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/PetApi.java index b55e91ddd9b9..c2bb64020448 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/PetApi.java @@ -229,7 +229,6 @@ private ResponseSpec deletePetRequestCreation(@jakarta.annotation.Nonnull Long p final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -309,7 +308,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@jakarta.annotation.Nonnull final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -390,7 +389,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@jakarta.annotation.Nonnull S final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/UserApi.java index 81688b4101d5..4c29b2073482 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter-static/src/main/java/org/openapitools/client/api/UserApi.java @@ -527,7 +527,7 @@ private ResponseSpec loginUserRequestCreation(@jakarta.annotation.Nonnull String queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java index c19e51efd91d..9dde67aa4412 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -499,6 +500,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java index 38653fe6c4ba..4a7b5b994043 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java @@ -248,7 +248,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@jakarta.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -939,7 +938,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@jakarta.annotation. final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1343,7 +1342,6 @@ private ResponseSpec testEnumParametersRequestCreation(@jakarta.annotation.Nulla queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1504,7 +1502,6 @@ private ResponseSpec testGroupParametersRequestCreation(@jakarta.annotation.Nonn queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1991,7 +1988,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@jakarta. queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java index 9a280dd4eb65..8108d1627a35 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java @@ -185,7 +185,6 @@ private ResponseSpec deletePetRequestCreation(@jakarta.annotation.Nonnull Long p final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -265,7 +264,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@jakarta.annotation.Nonnull final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -346,7 +345,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@jakarta.annotation.Nonnull S final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java index 4e961792804c..23dda8a70638 100644 --- a/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/restclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java @@ -483,7 +483,7 @@ private ResponseSpec loginUserRequestCreation(@jakarta.annotation.Nonnull String queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/ApiClient.java index c19e51efd91d..9dde67aa4412 100644 --- a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -499,6 +500,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/FakeApi.java index 0892c9611f23..0fd4ab3c3954 100644 --- a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/FakeApi.java @@ -212,7 +212,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@jakarta.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -867,7 +866,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@jakarta.annotation. final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1193,7 +1192,6 @@ private ResponseSpec testEnumParametersRequestCreation(@jakarta.annotation.Nulla queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1318,7 +1316,6 @@ private ResponseSpec testGroupParametersRequestCreation(@jakarta.annotation.Nonn queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1733,7 +1730,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@jakarta. queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/PetApi.java index d2384a985c9c..ea55c5096006 100644 --- a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/PetApi.java @@ -146,7 +146,6 @@ private ResponseSpec deletePetRequestCreation(@jakarta.annotation.Nonnull Long p final MultiValueMap cookieParams = new LinkedMultiValueMap<>(); final MultiValueMap formParams = new LinkedMultiValueMap<>(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -226,7 +225,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@jakarta.annotation.Nonnull final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -307,7 +306,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@jakarta.annotation.Nonnull S final MultiValueMap formParams = new LinkedMultiValueMap<>(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/UserApi.java index 97b26ac5a555..84e74f884863 100644 --- a/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/restclient/src/main/java/org/openapitools/client/api/UserApi.java @@ -442,7 +442,7 @@ private ResponseSpec loginUserRequestCreation(@jakarta.annotation.Nonnull String queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java index caad1172798d..3cb020024430 100644 --- a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -435,6 +436,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/FakeApi.java index db6a1bbdb549..b432523f37f4 100644 --- a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/FakeApi.java @@ -214,7 +214,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@jakarta.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -869,7 +868,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@jakarta.annotation. final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1195,7 +1194,6 @@ private ResponseSpec testEnumParametersRequestCreation(@jakarta.annotation.Nulla queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1320,7 +1318,6 @@ private ResponseSpec testGroupParametersRequestCreation(@jakarta.annotation.Nonn queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1735,7 +1732,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@jakarta. queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/PetApi.java index 46c07b6a3dec..dbb510097d1d 100644 --- a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/PetApi.java @@ -148,7 +148,6 @@ private ResponseSpec deletePetRequestCreation(@jakarta.annotation.Nonnull Long p final MultiValueMap cookieParams = new LinkedMultiValueMap(); final MultiValueMap formParams = new LinkedMultiValueMap(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -228,7 +227,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@jakarta.annotation.Nonnull final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -309,7 +308,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@jakarta.annotation.Nonnull S final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/UserApi.java index 5d389224f3e0..2884e4e1b245 100644 --- a/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/webclient-jakarta/src/main/java/org/openapitools/client/api/UserApi.java @@ -444,7 +444,7 @@ private ResponseSpec loginUserRequestCreation(@jakarta.annotation.Nonnull String queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java index 7f3593fad9be..f05e27020037 100644 --- a/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-nullable-arrays/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -415,6 +416,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java index 6dd197364ac3..7ca00f115c78 100644 --- a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -435,6 +436,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java index e28312062c37..b722c6fef7d2 100644 --- a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/FakeApi.java @@ -214,7 +214,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@javax.annotation.Nonn final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -869,7 +868,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@javax.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1195,7 +1194,6 @@ private ResponseSpec testEnumParametersRequestCreation(@javax.annotation.Nullabl queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1320,7 +1318,6 @@ private ResponseSpec testGroupParametersRequestCreation(@javax.annotation.Nonnul queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1735,7 +1732,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@javax.an queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java index 39275d5a9103..62427ae43a81 100644 --- a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/PetApi.java @@ -148,7 +148,6 @@ private ResponseSpec deletePetRequestCreation(@javax.annotation.Nonnull Long pet final MultiValueMap cookieParams = new LinkedMultiValueMap(); final MultiValueMap formParams = new LinkedMultiValueMap(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -228,7 +227,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@javax.annotation.Nonnull L final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -309,7 +308,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@javax.annotation.Nonnull Set final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java index 709c33f0757c..7e3b43db066f 100644 --- a/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/webclient-swagger2/src/main/java/org/openapitools/client/api/UserApi.java @@ -444,7 +444,7 @@ private ResponseSpec loginUserRequestCreation(@javax.annotation.Nonnull String u queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java index 6dd197364ac3..7ca00f115c78 100644 --- a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -435,6 +436,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java index 154b1ec1cf20..ed7713f32601 100644 --- a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/FakeApi.java @@ -306,7 +306,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@javax.annotation.Nonn final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -1042,7 +1041,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@javax.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1745,7 +1744,6 @@ private ResponseSpec testEnumParametersRequestCreation(@javax.annotation.Nullabl queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1995,7 +1993,6 @@ private ResponseSpec testGroupParametersRequestCreation(@javax.annotation.Nonnul queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -2627,7 +2624,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@javax.an queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java index cecacd074e8a..0cb3aceb3355 100644 --- a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/PetApi.java @@ -232,7 +232,6 @@ private ResponseSpec deletePetRequestCreation(@javax.annotation.Nonnull Long pet final MultiValueMap cookieParams = new LinkedMultiValueMap(); final MultiValueMap formParams = new LinkedMultiValueMap(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -312,7 +311,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@javax.annotation.Nonnull L final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -393,7 +392,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@javax.annotation.Nonnull Set final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java index 99a2f427d642..66d1e3d9511b 100644 --- a/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/webclient-useSingleRequestParameter/src/main/java/org/openapitools/client/api/UserApi.java @@ -530,7 +530,7 @@ private ResponseSpec loginUserRequestCreation(@javax.annotation.Nonnull String u queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java index 6dd197364ac3..7ca00f115c78 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/ApiClient.java @@ -13,6 +13,7 @@ package org.openapitools.client; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -435,6 +436,36 @@ public String parameterToString(Object param) { } } + /** + * Converts a parameter to a {@link MultiValueMap} containing Json-serialized values for use in REST requests + * @param collectionFormat The format to convert to + * @param name The name of the parameter + * @param value The parameter's value + * @return a Map containing the Json-serialized String value(s) of the input parameter + */ + public MultiValueMap parameterToMultiValueMapJson(CollectionFormat collectionFormat, String name, Object value) { + Collection valueCollection; + if (value instanceof Collection) { + valueCollection = (Collection) value; + } else { + try { + return parameterToMultiValueMap(collectionFormat, name, objectMapper.writeValueAsString(value)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + + List values = new ArrayList<>(); + for(Object o : valueCollection) { + try { + values.add(objectMapper.writeValueAsString(o)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + } + return parameterToMultiValueMap(collectionFormat, name, "[" + StringUtils.collectionToDelimitedString(values, collectionFormat.separator) + "]"); + } + /** * Converts a parameter to a {@link MultiValueMap} for use in REST requests * @param collectionFormat The format to convert to diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java index e28312062c37..b722c6fef7d2 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/FakeApi.java @@ -214,7 +214,6 @@ private ResponseSpec fakeHttpSignatureTestRequestCreation(@javax.annotation.Nonn final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1)); - if (header1 != null) headerParams.add("header_1", apiClient.parameterToString(header1)); @@ -869,7 +868,7 @@ private ResponseSpec testBodyWithQueryParamsRequestCreation(@javax.annotation.No final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query", query)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { @@ -1195,7 +1194,6 @@ private ResponseSpec testEnumParametersRequestCreation(@javax.annotation.Nullabl queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_integer", enumQueryInteger)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble)); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray)); - if (enumHeaderStringArray != null) headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray)); @@ -1320,7 +1318,6 @@ private ResponseSpec testGroupParametersRequestCreation(@javax.annotation.Nonnul queryParams.putAll(apiClient.parameterToMultiValueMap(null, "required_int64_group", requiredInt64Group)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group)); - if (requiredBooleanGroup != null) headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup)); @@ -1735,7 +1732,7 @@ private ResponseSpec testQueryParameterCollectionFormatRequestCreation(@javax.an queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "context", context)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "language", language)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "allowEmpty", allowEmpty)); - + final String[] localVarAccepts = { }; final List localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = { }; diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/PetApi.java index 39275d5a9103..62427ae43a81 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/PetApi.java @@ -148,7 +148,6 @@ private ResponseSpec deletePetRequestCreation(@javax.annotation.Nonnull Long pet final MultiValueMap cookieParams = new LinkedMultiValueMap(); final MultiValueMap formParams = new LinkedMultiValueMap(); - if (apiKey != null) headerParams.add("api_key", apiClient.parameterToString(apiKey)); final String[] localVarAccepts = { }; @@ -228,7 +227,7 @@ private ResponseSpec findPetsByStatusRequestCreation(@javax.annotation.Nonnull L final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "status", status)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; @@ -309,7 +308,7 @@ private ResponseSpec findPetsByTagsRequestCreation(@javax.annotation.Nonnull Set final MultiValueMap formParams = new LinkedMultiValueMap(); queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("csv".toUpperCase(Locale.ROOT)), "tags", tags)); - + final String[] localVarAccepts = { "application/xml", "application/json" }; diff --git a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/UserApi.java index 709c33f0757c..7e3b43db066f 100644 --- a/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/webclient/src/main/java/org/openapitools/client/api/UserApi.java @@ -444,7 +444,7 @@ private ResponseSpec loginUserRequestCreation(@javax.annotation.Nonnull String u queryParams.putAll(apiClient.parameterToMultiValueMap(null, "username", username)); queryParams.putAll(apiClient.parameterToMultiValueMap(null, "password", password)); - + final String[] localVarAccepts = { "application/xml", "application/json" };