[Java][jersey2] Add nullable body support (#6784)

* add nullable body support

* update serializeToString with nullable body

* add nullable support to body parameter

* minor code format change

* Revert "minor code format change"

This reverts commit 3af1838a9b.

* code format fix
This commit is contained in:
William Cheng
2020-06-29 16:08:42 +08:00
committed by GitHub
parent d949c8181d
commit e3cdb4c328
19 changed files with 161 additions and 121 deletions

View File

@@ -835,7 +835,7 @@ public class ApiClient {
* @return Entity
* @throws ApiException API exception
*/
public Entity<?> serialize(Object obj, Map<String, Object> formParams, String contentType) throws ApiException {
public Entity<?> serialize(Object obj, Map<String, Object> formParams, String contentType, boolean isBodyNullable) throws ApiException {
Entity<?> entity;
if (contentType.startsWith("multipart/form-data")) {
MultiPart multiPart = new MultiPart();
@@ -859,7 +859,11 @@ public class ApiClient {
entity = Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE);
} else {
// We let jersey handle the serialization
entity = Entity.entity(obj == null ? Entity.text("") : obj, contentType);
if (isBodyNullable) { // payload is nullable
entity = Entity.entity(obj == null ? Entity.text("null") : obj, contentType);
} else {
entity = Entity.entity(obj == null ? Entity.text("") : obj, contentType);
}
}
return entity;
}
@@ -870,10 +874,11 @@ public class ApiClient {
* @param obj Object
* @param formParams Form parameters
* @param contentType Context type
* @param isBodyNulalble True if the body is nullable
* @return String
* @throws ApiException API exception
*/
public String serializeToString(Object obj, Map<String, Object> formParams, String contentType) throws ApiException {
public String serializeToString(Object obj, Map<String, Object> formParams, String contentType, boolean isBodyNullable) throws ApiException {
try {
if (contentType.startsWith("multipart/form-data")) {
throw new ApiException("multipart/form-data not yet supported for serializeToString (http signature authentication)");
@@ -889,7 +894,11 @@ public class ApiClient {
return formString.substring(0, formString.length() - 1);
}
} else {
return json.getMapper().writeValueAsString(obj);
if (isBodyNullable) {
return obj == null ? "null" : json.getMapper().writeValueAsString(obj);
} else {
return json.getMapper().writeValueAsString(obj);
}
}
} catch (Exception ex) {
throw new ApiException("Failed to perform serializeToString: " + ex.toString());
@@ -997,6 +1006,7 @@ public class ApiClient {
* @param contentType The request's Content-Type header
* @param authNames The authentications to apply
* @param returnType The return type into which to deserialize the response
* @param isBodyNullable True if the body is nullable
* @return The response body in type of string
* @throws ApiException API exception
*/
@@ -1012,7 +1022,8 @@ public class ApiClient {
String accept,
String contentType,
String[] authNames,
GenericType<T> returnType)
GenericType<T> returnType,
boolean isBodyNullable)
throws ApiException {
// Not using `.target(targetURL).path(path)` below,
@@ -1059,7 +1070,7 @@ public class ApiClient {
}
}
Entity<?> entity = serialize(body, formParams, contentType);
Entity<?> entity = serialize(body, formParams, contentType, isBodyNullable);
// put all headers in one place
Map<String, String> allHeaderParams = new HashMap<>(defaultHeaderMap);
@@ -1071,7 +1082,7 @@ public class ApiClient {
queryParams,
allHeaderParams,
cookieParams,
serializeToString(body, formParams, contentType),
serializeToString(body, formParams, contentType, isBodyNullable),
method,
target.getUri());
@@ -1158,8 +1169,8 @@ public class ApiClient {
* @deprecated Add qualified name of the operation as a first parameter.
*/
@Deprecated
public <T> ApiResponse<T> invokeAPI(String path, String method, List<Pair> queryParams, Object body, Map<String, String> headerParams, Map<String, String> cookieParams, Map<String, Object> formParams, String accept, String contentType, String[] authNames, GenericType<T> returnType) throws ApiException {
return invokeAPI(null, path, method, queryParams, body, headerParams, cookieParams, formParams, accept, contentType, authNames, returnType);
public <T> ApiResponse<T> invokeAPI(String path, String method, List<Pair> queryParams, Object body, Map<String, String> headerParams, Map<String, String> cookieParams, Map<String, Object> formParams, String accept, String contentType, String[] authNames, GenericType<T> returnType, boolean isBodyNullable) throws ApiException {
return invokeAPI(null, path, method, queryParams, body, headerParams, cookieParams, formParams, accept, contentType, authNames, returnType, isBodyNullable);
}
/**

View File

@@ -110,6 +110,6 @@ public class AnotherFakeApi {
return apiClient.invokeAPI("AnotherFakeApi.call123testSpecialTags", localVarPath, "PATCH", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
}

View File

@@ -103,6 +103,6 @@ public class DefaultApi {
return apiClient.invokeAPI("DefaultApi.fooGet", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
}

View File

@@ -112,7 +112,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.fakeHealthGet", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
*
@@ -174,7 +174,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.fakeOuterBooleanSerialize", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
*
@@ -236,7 +236,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.fakeOuterCompositeSerialize", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
*
@@ -298,7 +298,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.fakeOuterNumberSerialize", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
*
@@ -360,7 +360,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.fakeOuterStringSerialize", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Array of Enums
@@ -420,7 +420,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.getArrayOfEnums", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
*
@@ -484,7 +484,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.testBodyWithFileSchema", localVarPath, "PUT", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
*
@@ -556,7 +556,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.testBodyWithQueryParams", localVarPath, "PUT", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* To test \&quot;client\&quot; model
@@ -623,7 +623,7 @@ public class FakeApi {
return apiClient.invokeAPI("FakeApi.testClientModel", localVarPath, "PATCH", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
@@ -758,7 +758,7 @@ if (paramCallback != null)
return apiClient.invokeAPI("FakeApi.testEndpointParameters", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* To test enum parameters
@@ -845,7 +845,7 @@ if (enumFormString != null)
return apiClient.invokeAPI("FakeApi.testEnumParameters", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
private ApiResponse<Void> testGroupParametersWithHttpInfo(Integer requiredStringGroup, Boolean requiredBooleanGroup, Long requiredInt64Group, Integer stringGroup, Boolean booleanGroup, Long int64Group) throws ApiException {
@@ -901,7 +901,7 @@ if (booleanGroup != null)
return apiClient.invokeAPI("FakeApi.testGroupParameters", localVarPath, "DELETE", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
public class APItestGroupParametersRequest {
@@ -1080,7 +1080,7 @@ if (booleanGroup != null)
return apiClient.invokeAPI("FakeApi.testInlineAdditionalProperties", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* test json serialization of form data
@@ -1155,7 +1155,7 @@ if (param2 != null)
return apiClient.invokeAPI("FakeApi.testJsonFormData", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
*
@@ -1252,6 +1252,6 @@ if (param2 != null)
return apiClient.invokeAPI("FakeApi.testQueryParameterCollectionFormat", localVarPath, "PUT", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
}

View File

@@ -110,6 +110,6 @@ public class FakeClassnameTags123Api {
return apiClient.invokeAPI("FakeClassnameTags123Api.testClassname", localVarPath, "PATCH", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
}

View File

@@ -109,7 +109,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.addPet", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Deletes a pet
@@ -178,7 +178,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.deletePet", localVarPath, "DELETE", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Finds Pets by status
@@ -248,7 +248,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.findPetsByStatus", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Finds Pets by tags
@@ -322,7 +322,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.findPetsByTags", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Find pet by ID
@@ -394,7 +394,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.getPetById", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Update an existing pet
@@ -462,7 +462,7 @@ public class PetApi {
return apiClient.invokeAPI("PetApi.updatePet", localVarPath, "PUT", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Updates a pet in the store with form data
@@ -535,7 +535,7 @@ if (status != null)
return apiClient.invokeAPI("PetApi.updatePetWithForm", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* uploads an image
@@ -611,7 +611,7 @@ if (file != null)
return apiClient.invokeAPI("PetApi.uploadFile", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* uploads an image (required)
@@ -692,6 +692,6 @@ if (requiredFile != null)
return apiClient.invokeAPI("PetApi.uploadFileWithRequiredFile", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
}

View File

@@ -110,7 +110,7 @@ public class StoreApi {
return apiClient.invokeAPI("StoreApi.deleteOrder", localVarPath, "DELETE", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Returns pet inventories by status
@@ -170,7 +170,7 @@ public class StoreApi {
return apiClient.invokeAPI("StoreApi.getInventory", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Find purchase order by ID
@@ -242,7 +242,7 @@ public class StoreApi {
return apiClient.invokeAPI("StoreApi.getOrderById", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Place an order for a pet
@@ -311,6 +311,6 @@ public class StoreApi {
return apiClient.invokeAPI("StoreApi.placeOrder", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
}

View File

@@ -107,7 +107,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.createUser", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Creates list of users with given input array
@@ -171,7 +171,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.createUsersWithArrayInput", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Creates list of users with given input array
@@ -235,7 +235,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.createUsersWithListInput", localVarPath, "POST", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Delete user
@@ -302,7 +302,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.deleteUser", localVarPath, "DELETE", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Get user by user name
@@ -374,7 +374,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.getUserByName", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Logs user into the system
@@ -452,7 +452,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.loginUser", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
localVarAuthNames, localVarReturnType, false);
}
/**
* Logs out current logged in user session
@@ -509,7 +509,7 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.logoutUser", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
/**
* Updated user
@@ -583,6 +583,6 @@ public class UserApi {
return apiClient.invokeAPI("UserApi.updateUser", localVarPath, "PUT", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, null);
localVarAuthNames, null, false);
}
}