forked from loafle/openapi-generator-original
webclient explode query parameters support (#17441)
This commit is contained in:
parent
106047980b
commit
3099a2fcd3
@ -92,11 +92,10 @@ public class {{classname}} {
|
|||||||
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
||||||
{{#hasQueryParams}}
|
{{#hasQueryParams}}
|
||||||
|
|
||||||
{{#queryParams}}
|
{{#queryParams}}{{#isExplode}}{{#hasVars}}{{#vars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}.{{getter}}()));
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));
|
{{/vars}}{{/hasVars}}{{^hasVars}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));
|
||||||
{{/queryParams}}
|
{{/hasVars}}{{/isExplode}}{{^isExplode}}queryParams.putAll(apiClient.parameterToMultiValueMap({{#collectionFormat}}ApiClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT)){{/collectionFormat}}{{^collectionFormat}}null{{/collectionFormat}}, "{{baseName}}", {{paramName}}));
|
||||||
{{/hasQueryParams}}
|
{{/isExplode}}{{/queryParams}}{{/hasQueryParams}}{{#hasHeaderParams}}
|
||||||
{{#hasHeaderParams}}
|
|
||||||
|
|
||||||
{{#headerParams}}
|
{{#headerParams}}
|
||||||
if ({{paramName}} != null)
|
if ({{paramName}} != null)
|
||||||
|
@ -2272,6 +2272,30 @@ public class JavaClientCodegenTest {
|
|||||||
+ " objectParam.getSomeInteger()));");
|
+ " 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) {
|
private static Map<String, File> generateFromContract(final String pathToSpecification, final String library) {
|
||||||
return generateFromContract(pathToSpecification, library, new HashMap<>());
|
return generateFromContract(pathToSpecification, library, new HashMap<>());
|
||||||
}
|
}
|
||||||
|
@ -213,6 +213,7 @@ public class FakeApi {
|
|||||||
|
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
||||||
|
|
||||||
|
|
||||||
if (header1 != null)
|
if (header1 != null)
|
||||||
headerParams.add("header_1", apiClient.parameterToString(header1));
|
headerParams.add("header_1", apiClient.parameterToString(header1));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
@ -1112,6 +1113,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble));
|
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));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray));
|
||||||
|
|
||||||
|
|
||||||
if (enumHeaderStringArray != null)
|
if (enumHeaderStringArray != null)
|
||||||
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
||||||
if (enumHeaderString != null)
|
if (enumHeaderString != null)
|
||||||
@ -1235,6 +1237,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
||||||
|
|
||||||
|
|
||||||
if (requiredBooleanGroup != null)
|
if (requiredBooleanGroup != null)
|
||||||
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
||||||
if (booleanGroup != null)
|
if (booleanGroup != null)
|
||||||
|
@ -147,6 +147,7 @@ public class PetApi {
|
|||||||
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
||||||
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
||||||
|
|
||||||
|
|
||||||
if (apiKey != null)
|
if (apiKey != null)
|
||||||
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
|
@ -213,6 +213,7 @@ public class FakeApi {
|
|||||||
|
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
||||||
|
|
||||||
|
|
||||||
if (header1 != null)
|
if (header1 != null)
|
||||||
headerParams.add("header_1", apiClient.parameterToString(header1));
|
headerParams.add("header_1", apiClient.parameterToString(header1));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
@ -1112,6 +1113,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble));
|
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));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray));
|
||||||
|
|
||||||
|
|
||||||
if (enumHeaderStringArray != null)
|
if (enumHeaderStringArray != null)
|
||||||
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
||||||
if (enumHeaderString != null)
|
if (enumHeaderString != null)
|
||||||
@ -1235,6 +1237,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
||||||
|
|
||||||
|
|
||||||
if (requiredBooleanGroup != null)
|
if (requiredBooleanGroup != null)
|
||||||
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
||||||
if (booleanGroup != null)
|
if (booleanGroup != null)
|
||||||
|
@ -147,6 +147,7 @@ public class PetApi {
|
|||||||
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
||||||
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
||||||
|
|
||||||
|
|
||||||
if (apiKey != null)
|
if (apiKey != null)
|
||||||
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
|
@ -213,6 +213,7 @@ public class FakeApi {
|
|||||||
|
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "query_1", query1));
|
||||||
|
|
||||||
|
|
||||||
if (header1 != null)
|
if (header1 != null)
|
||||||
headerParams.add("header_1", apiClient.parameterToString(header1));
|
headerParams.add("header_1", apiClient.parameterToString(header1));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
@ -1112,6 +1113,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "enum_query_double", enumQueryDouble));
|
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));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(ApiClient.CollectionFormat.valueOf("multi".toUpperCase(Locale.ROOT)), "enum_query_model_array", enumQueryModelArray));
|
||||||
|
|
||||||
|
|
||||||
if (enumHeaderStringArray != null)
|
if (enumHeaderStringArray != null)
|
||||||
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
headerParams.add("enum_header_string_array", apiClient.parameterToString(enumHeaderStringArray));
|
||||||
if (enumHeaderString != null)
|
if (enumHeaderString != null)
|
||||||
@ -1235,6 +1237,7 @@ public class FakeApi {
|
|||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "string_group", stringGroup));
|
||||||
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
queryParams.putAll(apiClient.parameterToMultiValueMap(null, "int64_group", int64Group));
|
||||||
|
|
||||||
|
|
||||||
if (requiredBooleanGroup != null)
|
if (requiredBooleanGroup != null)
|
||||||
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
headerParams.add("required_boolean_group", apiClient.parameterToString(requiredBooleanGroup));
|
||||||
if (booleanGroup != null)
|
if (booleanGroup != null)
|
||||||
|
@ -147,6 +147,7 @@ public class PetApi {
|
|||||||
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
final MultiValueMap<String, String> cookieParams = new LinkedMultiValueMap<String, String>();
|
||||||
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
final MultiValueMap<String, Object> formParams = new LinkedMultiValueMap<String, Object>();
|
||||||
|
|
||||||
|
|
||||||
if (apiKey != null)
|
if (apiKey != null)
|
||||||
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
headerParams.add("api_key", apiClient.parameterToString(apiKey));
|
||||||
final String[] localVarAccepts = { };
|
final String[] localVarAccepts = { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user