code: public <T> ApiResponse<T> execute(Call call, Type returnType) throws ApiException {
          try {
              Response response = call.execute();
              T data = handleResponse(response, returnType);
              return new ApiResponse<T>(response.code(), response.headers().toMultimap(), data);
          } catch (IOException e) {
              throw new ApiException(e);
          }
      }
docs: Execute HTTP call and deserialize the HTTP response body into the given return type.
  
  @param returnType The return type used to deserialize HTTP response body
  @param <T> The return type corresponding to (same with) returnType
  @param call Call
  @return ApiResponse object containing response status, headers and
  data, which is a Java object deserialized from response body and would be null
  when returnType is null.
  @throws ApiException If fail to execute the call