Skip to content

Commit cf4b4de

Browse files
committed
Skip null header/form parameters
and fix the bug of getting file name for file parameter
1 parent eb49732 commit cf4b4de

File tree

2 files changed

+38
-20
lines changed
  • modules/swagger-codegen/src/main/resources/Java
  • samples/client/petstore/java/src/main/java/io/swagger/client/api

2 files changed

+38
-20
lines changed

modules/swagger-codegen/src/main/resources/Java/api.mustache

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ public class {{classname}} {
6868
{{#queryParams}}if ({{paramName}} != null)
6969
queryParams.put("{{baseName}}", apiClient.parameterToString({{paramName}}));
7070
{{/queryParams}}
71-
{{#headerParams}}headerParams.put("{{baseName}}", apiClient.parameterToString({{paramName}}));
71+
{{#headerParams}}if ({{paramName}} != null)
72+
headerParams.put("{{baseName}}", apiClient.parameterToString({{paramName}}));
7273
{{/headerParams}}
7374
String[] contentTypes = {
7475
{{#consumes}}"{{mediaType}}"{{#hasMore}},{{/hasMore}}{{/consumes}}
@@ -80,18 +81,23 @@ public class {{classname}} {
8081
boolean hasFields = false;
8182
FormDataMultiPart mp = new FormDataMultiPart();
8283
{{#formParams}}{{#notFile}}
83-
hasFields = true;
84-
mp.field("{{baseName}}", apiClient.parameterToString({{paramName}}), MediaType.MULTIPART_FORM_DATA_TYPE);
84+
if ({{paramName}} != null) {
85+
hasFields = true;
86+
mp.field("{{baseName}}", apiClient.parameterToString({{paramName}}), MediaType.MULTIPART_FORM_DATA_TYPE);
87+
}
8588
{{/notFile}}{{#isFile}}
86-
hasFields = true;
87-
mp.field("{{baseName}}", file.getName());
88-
mp.bodyPart(new FileDataBodyPart("{{baseName}}", {{paramName}}, MediaType.MULTIPART_FORM_DATA_TYPE));
89+
if ({{paramName}} != null) {
90+
hasFields = true;
91+
mp.field("{{baseName}}", {{paramName}}.getName());
92+
mp.bodyPart(new FileDataBodyPart("{{baseName}}", {{paramName}}, MediaType.MULTIPART_FORM_DATA_TYPE));
93+
}
8994
{{/isFile}}{{/formParams}}
9095
if(hasFields)
9196
postBody = mp;
9297
}
9398
else {
94-
{{#formParams}}{{#notFile}}formParams.put("{{baseName}}", apiClient.parameterToString({{paramName}}));{{/notFile}}
99+
{{#formParams}}{{#notFile}}if ({{paramName}} != null)
100+
formParams.put("{{baseName}}", apiClient.parameterToString({{paramName}}));{{/notFile}}
95101
{{/formParams}}
96102
}
97103

samples/client/petstore/java/src/main/java/io/swagger/client/api/PetApi.java

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -338,18 +338,24 @@ public void updatePetWithForm (String petId, String name, String status) throws
338338
boolean hasFields = false;
339339
FormDataMultiPart mp = new FormDataMultiPart();
340340

341-
hasFields = true;
342-
mp.field("name", apiClient.parameterToString(name), MediaType.MULTIPART_FORM_DATA_TYPE);
341+
if (name != null) {
342+
hasFields = true;
343+
mp.field("name", apiClient.parameterToString(name), MediaType.MULTIPART_FORM_DATA_TYPE);
344+
}
343345

344-
hasFields = true;
345-
mp.field("status", apiClient.parameterToString(status), MediaType.MULTIPART_FORM_DATA_TYPE);
346+
if (status != null) {
347+
hasFields = true;
348+
mp.field("status", apiClient.parameterToString(status), MediaType.MULTIPART_FORM_DATA_TYPE);
349+
}
346350

347351
if(hasFields)
348352
postBody = mp;
349353
}
350354
else {
351-
formParams.put("name", apiClient.parameterToString(name));
352-
formParams.put("status", apiClient.parameterToString(status));
355+
if (name != null)
356+
formParams.put("name", apiClient.parameterToString(name));
357+
if (status != null)
358+
formParams.put("status", apiClient.parameterToString(status));
353359

354360
}
355361

@@ -392,7 +398,8 @@ public void deletePet (String apiKey, Long petId) throws ApiException {
392398
Map<String, String> formParams = new HashMap<String, String>();
393399

394400

395-
headerParams.put("api_key", apiClient.parameterToString(apiKey));
401+
if (apiKey != null)
402+
headerParams.put("api_key", apiClient.parameterToString(apiKey));
396403

397404
String[] contentTypes = {
398405

@@ -462,18 +469,23 @@ public void uploadFile (Long petId, String additionalMetadata, File file) throws
462469
boolean hasFields = false;
463470
FormDataMultiPart mp = new FormDataMultiPart();
464471

465-
hasFields = true;
466-
mp.field("additionalMetadata", apiClient.parameterToString(additionalMetadata), MediaType.MULTIPART_FORM_DATA_TYPE);
472+
if (additionalMetadata != null) {
473+
hasFields = true;
474+
mp.field("additionalMetadata", apiClient.parameterToString(additionalMetadata), MediaType.MULTIPART_FORM_DATA_TYPE);
475+
}
467476

468-
hasFields = true;
469-
mp.field("file", file.getName());
470-
mp.bodyPart(new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE));
477+
if (file != null) {
478+
hasFields = true;
479+
mp.field("file", file.getName());
480+
mp.bodyPart(new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE));
481+
}
471482

472483
if(hasFields)
473484
postBody = mp;
474485
}
475486
else {
476-
formParams.put("additionalMetadata", apiClient.parameterToString(additionalMetadata));
487+
if (additionalMetadata != null)
488+
formParams.put("additionalMetadata", apiClient.parameterToString(additionalMetadata));
477489

478490

479491
}

0 commit comments

Comments
 (0)