mirror of
https://github.com/jlengrand/openapi-generator.git
synced 2026-03-10 08:31:23 +00:00
webclient explode query parameters support (#17441)
This commit is contained in:
@@ -92,11 +92,10 @@ public class {{classname}} {
|
||||
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
||||
{{#hasQueryParams}}
|
||||
|
||||
{{#queryParams}}
|
||||
queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));
|
||||
{{/queryParams}}
|
||||
{{/hasQueryParams}}
|
||||
{{#hasHeaderParams}}
|
||||
{{#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}}
|
||||
|
||||
{{#headerParams}}
|
||||
if ({{paramName}} != null)
|
||||
|
||||
@@ -2272,6 +2272,30 @@ public class JavaClientCodegenTest {
|
||||
+ " objectParam.getSomeInteger()));");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldProperlyExplodeWebClientQueryParameters() {
|
||||
final Map<String, File> files = generateFromContract(
|
||||
"src/test/resources/3_0/java/explode-query-parameter.yaml",
|
||||
JavaClientCodegen.WEBCLIENT
|
||||
);
|
||||
|
||||
JavaFileAssert.assertThat(files.get("DefaultApi.java"))
|
||||
.printFileContent()
|
||||
.assertMethod("searchRequestCreation")
|
||||
.bodyContainsLines(
|
||||
"queryParams.putAll(apiClient.parameterToMultiValueMap(null, \"regular-param\","
|
||||
+ " regularParam));")
|
||||
.bodyContainsLines(
|
||||
"queryParams.putAll(apiClient.parameterToMultiValueMap(null, \"someString\","
|
||||
+ " objectParam.getSomeString()));")
|
||||
.bodyContainsLines(
|
||||
"queryParams.putAll(apiClient.parameterToMultiValueMap(null, \"someBoolean\","
|
||||
+ " objectParam.getSomeBoolean()));")
|
||||
.bodyContainsLines(
|
||||
"queryParams.putAll(apiClient.parameterToMultiValueMap(null, \"someInteger\","
|
||||
+ " objectParam.getSomeInteger()));");
|
||||
}
|
||||
|
||||
private static Map<String, File> generateFromContract(final String pathToSpecification, final String library) {
|
||||
return generateFromContract(pathToSpecification, library, new HashMap<>());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user