diff --git a/modules/swagger-codegen/src/main/resources/dart/api_client.mustache b/modules/swagger-codegen/src/main/resources/dart/api_client.mustache index dcbd731d2af..86e698eb836 100644 --- a/modules/swagger-codegen/src/main/resources/dart/api_client.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/api_client.mustache @@ -17,7 +17,6 @@ class ApiClient { final dson = new Dartson.JSON() ..addTransformer(new DateTimeParser(), DateTime); - final DateFormat _dateFormatter = new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); final _RegList = new RegExp(r'^List<(.*)>$'); final _RegMap = new RegExp(r'^Map$'); @@ -33,24 +32,6 @@ class ApiClient { _defaultHeaderMap[key] = value; } - /// Format the given Date object into string. - String formatDate(DateTime date) { - return _dateFormatter.format(date); - } - - /// Format the given parameter object into string. - String parameterToString(Object param) { - if (param == null) { - return ''; - } else if (param is DateTime) { - return formatDate(param); - } else if (param is List) { - return (param).join(','); - } else { - return param.toString(); - } - } - dynamic _deserialize(dynamic value, String targetType) { try { switch (targetType) { diff --git a/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache b/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache index 6052dfb312b..15798ef3466 100644 --- a/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/api_helper.mustache @@ -11,7 +11,7 @@ Iterable _convertParametersForCollectionFormat( if (name == null || name.isEmpty || value == null) return params; if (value is! List) { - params.add(new QueryParam(name, '$value')); + params.add(new QueryParam(name, _parameterToString(value))); return params; } @@ -23,11 +23,22 @@ Iterable _convertParametersForCollectionFormat( : collectionFormat; // default: csv if (collectionFormat == "multi") { - return values.map((v) => new QueryParam(name, '$v')); + return values.map((v) => new QueryParam(name, _parameterToString(v))); } String delimiter = _delimiters[collectionFormat] ?? ","; - params.add(new QueryParam(name, values.join(delimiter))); + params.add(new QueryParam(name, values.map((v)=>_parameterToString(v)).join(delimiter))); return params; } + +/// Format the given parameter object into string. +String _parameterToString(dynamic value) { + if (value == null) { + return ''; + } else if (value is DateTime) { + return value.toUtc().toIso8601String(); + } else { + return value.toString(); + } +} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/dart/apilib.mustache b/modules/swagger-codegen/src/main/resources/dart/apilib.mustache index 07b02ef6105..8f131054f25 100644 --- a/modules/swagger-codegen/src/main/resources/dart/apilib.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/apilib.mustache @@ -6,7 +6,6 @@ import 'package:http/browser_client.dart';{{/browserClient}} import 'package:http/http.dart'; import 'package:dartson/dartson.dart'; import 'package:dartson/transformers/date_time.dart'; -import 'package:intl/intl.dart'; part 'api_client.dart'; part 'api_helper.dart'; diff --git a/modules/swagger-codegen/src/main/resources/dart/pubspec.mustache b/modules/swagger-codegen/src/main/resources/dart/pubspec.mustache index ce0a309ea82..5a580b2696d 100644 --- a/modules/swagger-codegen/src/main/resources/dart/pubspec.mustache +++ b/modules/swagger-codegen/src/main/resources/dart/pubspec.mustache @@ -4,7 +4,6 @@ description: {{pubDescription}} dependencies: http: '>=0.11.1 <0.12.0' dartson: "^0.2.4" - intl: ">=0.12.4" dev_dependencies: guinness: '^0.1.17' diff --git a/modules/swagger-codegen/src/main/resources/python/api.mustache b/modules/swagger-codegen/src/main/resources/python/api.mustache index 2d86c9de66c..c6a07b2f7a2 100644 --- a/modules/swagger-codegen/src/main/resources/python/api.mustache +++ b/modules/swagger-codegen/src/main/resources/python/api.mustache @@ -98,6 +98,7 @@ class {{classname}}(object): all_params = [{{#allParams}}'{{paramName}}'{{#hasMore}}, {{/hasMore}}{{/allParams}}] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -211,6 +212,7 @@ class {{classname}}(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) {{/operation}} {{/operations}} diff --git a/modules/swagger-codegen/src/main/resources/python/api_client.mustache b/modules/swagger-codegen/src/main/resources/python/api_client.mustache index dc4fe509f62..11646705495 100644 --- a/modules/swagger-codegen/src/main/resources/python/api_client.mustache +++ b/modules/swagger-codegen/src/main/resources/python/api_client.mustache @@ -96,7 +96,7 @@ class ApiClient(object): path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, response_type=None, auth_settings=None, callback=None, - _return_http_data_only=None, collection_formats=None): + _return_http_data_only=None, collection_formats=None, _preload_content=True): # header parameters header_params = header_params or {} @@ -144,22 +144,24 @@ class ApiClient(object): response_data = self.request(method, url, query_params=query_params, headers=header_params, - post_params=post_params, body=body) + post_params=post_params, body=body, _preload_content=_preload_content) self.last_response = response_data - # deserialize response data - if response_type: - deserialized_data = self.deserialize(response_data, response_type) - else: - deserialized_data = None + return_data = response_data + if _preload_content: + # deserialize response data + if response_type: + return_data = self.deserialize(response_data, response_type) + else: + return_data = None if callback: - callback(deserialized_data) if _return_http_data_only else callback((deserialized_data, response_data.status, response_data.getheaders())) + callback(return_data) if _return_http_data_only else callback((return_data, response_data.status, response_data.getheaders())) elif _return_http_data_only: - return (deserialized_data) + return (return_data) else: - return (deserialized_data, response_data.status, response_data.getheaders()) + return (return_data, response_data.status, response_data.getheaders()) def sanitize_for_serialization(self, obj): """ @@ -277,7 +279,7 @@ class ApiClient(object): path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, response_type=None, auth_settings=None, callback=None, - _return_http_data_only=None, collection_formats=None): + _return_http_data_only=None, collection_formats=None, _preload_content=True): """ Makes the HTTP request (synchronous) and return the deserialized data. To make an async request, define a function for callback. @@ -307,13 +309,15 @@ class ApiClient(object): The method will return the request thread. If parameter callback is None, then the method will return the response directly. + :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without + reading/decoding response data. Default is True. """ if callback is None: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, response_type, auth_settings, callback, - _return_http_data_only, collection_formats) + _return_http_data_only, collection_formats, _preload_content) else: thread = threading.Thread(target=self.__call_api, args=(resource_path, method, @@ -322,51 +326,58 @@ class ApiClient(object): post_params, files, response_type, auth_settings, callback, _return_http_data_only, - collection_formats)) + collection_formats, _preload_content)) thread.start() return thread def request(self, method, url, query_params=None, headers=None, - post_params=None, body=None): + post_params=None, body=None, _preload_content=True): """ Makes the HTTP request using RESTClient. """ if method == "GET": return self.rest_client.GET(url, query_params=query_params, + _preload_content=_preload_content, headers=headers) elif method == "HEAD": return self.rest_client.HEAD(url, query_params=query_params, + _preload_content=_preload_content, headers=headers) elif method == "OPTIONS": return self.rest_client.OPTIONS(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "POST": return self.rest_client.POST(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "PUT": return self.rest_client.PUT(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "PATCH": return self.rest_client.PATCH(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "DELETE": return self.rest_client.DELETE(url, query_params=query_params, headers=headers, + _preload_content=_preload_content, body=body) else: raise ValueError( diff --git a/modules/swagger-codegen/src/main/resources/python/rest.mustache b/modules/swagger-codegen/src/main/resources/python/rest.mustache index 9bdddc91904..3f0e3dca292 100644 --- a/modules/swagger-codegen/src/main/resources/python/rest.mustache +++ b/modules/swagger-codegen/src/main/resources/python/rest.mustache @@ -85,7 +85,7 @@ class RESTClientObject(object): ) def request(self, method, url, query_params=None, headers=None, - body=None, post_params=None): + body=None, post_params=None, _preload_content=True): """ :param method: http request method :param url: http request url @@ -95,6 +95,8 @@ class RESTClientObject(object): :param post_params: request post parameters, `application/x-www-form-urlencoded` and `multipart/form-data` + :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without + reading/decoding response data. Default is True. """ method = method.upper() assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH', 'OPTIONS'] @@ -121,11 +123,13 @@ class RESTClientObject(object): request_body = json.dumps(body) r = self.pool_manager.request(method, url, body=request_body, + preload_content=_preload_content, headers=headers) elif headers['Content-Type'] == 'application/x-www-form-urlencoded': r = self.pool_manager.request(method, url, fields=post_params, encode_multipart=False, + preload_content=_preload_content, headers=headers) elif headers['Content-Type'] == 'multipart/form-data': # must del headers['Content-Type'], or the correct Content-Type @@ -134,6 +138,7 @@ class RESTClientObject(object): r = self.pool_manager.request(method, url, fields=post_params, encode_multipart=True, + preload_content=_preload_content, headers=headers) # Pass a `string` parameter directly in the body to support # other content types than Json when `body` argument is provided @@ -142,6 +147,7 @@ class RESTClientObject(object): request_body = body r = self.pool_manager.request(method, url, body=request_body, + preload_content=_preload_content, headers=headers) else: # Cannot generate the request from given parameters @@ -152,68 +158,77 @@ class RESTClientObject(object): else: r = self.pool_manager.request(method, url, fields=query_params, + preload_content=_preload_content, headers=headers) except urllib3.exceptions.SSLError as e: msg = "{0}\n{1}".format(type(e).__name__, str(e)) raise ApiException(status=0, reason=msg) - r = RESTResponse(r) + if _preload_content: + r = RESTResponse(r) - # In the python 3, the response.data is bytes. - # we need to decode it to string. - if PY3: - r.data = r.data.decode('utf8') + # In the python 3, the response.data is bytes. + # we need to decode it to string. + if PY3: + r.data = r.data.decode('utf8') - # log response body - logger.debug("response body: %s", r.data) + # log response body + logger.debug("response body: %s", r.data) if r.status not in range(200, 206): raise ApiException(http_resp=r) return r - def GET(self, url, headers=None, query_params=None): + def GET(self, url, headers=None, query_params=None, _preload_content=True): return self.request("GET", url, headers=headers, + _preload_content=_preload_content, query_params=query_params) - def HEAD(self, url, headers=None, query_params=None): + def HEAD(self, url, headers=None, query_params=None, _preload_content=True): return self.request("HEAD", url, headers=headers, + _preload_content=_preload_content, query_params=query_params) - def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None): + def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("OPTIONS", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def DELETE(self, url, headers=None, query_params=None, body=None): + def DELETE(self, url, headers=None, query_params=None, body=None, _preload_content=True): return self.request("DELETE", url, headers=headers, query_params=query_params, + _preload_content=_preload_content, body=body) - def POST(self, url, headers=None, query_params=None, post_params=None, body=None): + def POST(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("POST", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def PUT(self, url, headers=None, query_params=None, post_params=None, body=None): + def PUT(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("PUT", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def PATCH(self, url, headers=None, query_params=None, post_params=None, body=None): + def PATCH(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("PATCH", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) diff --git a/samples/client/petstore/dart/swagger/lib/api.dart b/samples/client/petstore/dart/swagger/lib/api.dart index db95000d614..9273d7f1f99 100644 --- a/samples/client/petstore/dart/swagger/lib/api.dart +++ b/samples/client/petstore/dart/swagger/lib/api.dart @@ -6,7 +6,6 @@ import 'package:http/browser_client.dart'; import 'package:http/http.dart'; import 'package:dartson/dartson.dart'; import 'package:dartson/transformers/date_time.dart'; -import 'package:intl/intl.dart'; part 'api_client.dart'; part 'api_helper.dart'; diff --git a/samples/client/petstore/dart/swagger/lib/api_client.dart b/samples/client/petstore/dart/swagger/lib/api_client.dart index 73856b69d74..9552cef10d8 100644 --- a/samples/client/petstore/dart/swagger/lib/api_client.dart +++ b/samples/client/petstore/dart/swagger/lib/api_client.dart @@ -17,7 +17,6 @@ class ApiClient { final dson = new Dartson.JSON() ..addTransformer(new DateTimeParser(), DateTime); - final DateFormat _dateFormatter = new DateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); final _RegList = new RegExp(r'^List<(.*)>$'); final _RegMap = new RegExp(r'^Map$'); @@ -32,24 +31,6 @@ class ApiClient { _defaultHeaderMap[key] = value; } - /// Format the given Date object into string. - String formatDate(DateTime date) { - return _dateFormatter.format(date); - } - - /// Format the given parameter object into string. - String parameterToString(Object param) { - if (param == null) { - return ''; - } else if (param is DateTime) { - return formatDate(param); - } else if (param is List) { - return (param).join(','); - } else { - return param.toString(); - } - } - dynamic _deserialize(dynamic value, String targetType) { try { switch (targetType) { diff --git a/samples/client/petstore/dart/swagger/lib/api_helper.dart b/samples/client/petstore/dart/swagger/lib/api_helper.dart index ad73218ab40..7d2c3471a9f 100644 --- a/samples/client/petstore/dart/swagger/lib/api_helper.dart +++ b/samples/client/petstore/dart/swagger/lib/api_helper.dart @@ -11,7 +11,7 @@ Iterable _convertParametersForCollectionFormat( if (name == null || name.isEmpty || value == null) return params; if (value is! List) { - params.add(new QueryParam(name, '$value')); + params.add(new QueryParam(name, _parameterToString(value))); return params; } @@ -23,11 +23,22 @@ Iterable _convertParametersForCollectionFormat( : collectionFormat; // default: csv if (collectionFormat == "multi") { - return values.map((v) => new QueryParam(name, '$v')); + return values.map((v) => new QueryParam(name, _parameterToString(v))); } String delimiter = _delimiters[collectionFormat] ?? ","; - params.add(new QueryParam(name, values.join(delimiter))); + params.add(new QueryParam(name, values.map((v)=>_parameterToString(v)).join(delimiter))); return params; } + +/// Format the given parameter object into string. +String _parameterToString(dynamic value) { + if (value == null) { + return ''; + } else if (value is DateTime) { + return value.toUtc().toIso8601String(); + } else { + return value.toString(); + } +} \ No newline at end of file diff --git a/samples/client/petstore/dart/swagger/pubspec.yaml b/samples/client/petstore/dart/swagger/pubspec.yaml index 8ad53b9d6e6..50938a1c095 100644 --- a/samples/client/petstore/dart/swagger/pubspec.yaml +++ b/samples/client/petstore/dart/swagger/pubspec.yaml @@ -4,7 +4,6 @@ description: Swagger API client dependencies: http: '>=0.11.1 <0.12.0' dartson: "^0.2.4" - intl: ">=0.12.4" dev_dependencies: guinness: '^0.1.17' diff --git a/samples/client/petstore/python/docs/FakeApi.md b/samples/client/petstore/python/docs/FakeApi.md index c6ed3ccfbfc..69186f43a50 100644 --- a/samples/client/petstore/python/docs/FakeApi.md +++ b/samples/client/petstore/python/docs/FakeApi.md @@ -186,8 +186,8 @@ No authorization required ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json + - **Content-Type**: */* + - **Accept**: */* [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/samples/client/petstore/python/petstore_api/api_client.py b/samples/client/petstore/python/petstore_api/api_client.py index bd57c1089a4..f13cb3772ad 100644 --- a/samples/client/petstore/python/petstore_api/api_client.py +++ b/samples/client/petstore/python/petstore_api/api_client.py @@ -96,7 +96,7 @@ class ApiClient(object): path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, response_type=None, auth_settings=None, callback=None, - _return_http_data_only=None, collection_formats=None): + _return_http_data_only=None, collection_formats=None, _preload_content=True): # header parameters header_params = header_params or {} @@ -144,22 +144,24 @@ class ApiClient(object): response_data = self.request(method, url, query_params=query_params, headers=header_params, - post_params=post_params, body=body) + post_params=post_params, body=body, _preload_content=_preload_content) self.last_response = response_data - # deserialize response data - if response_type: - deserialized_data = self.deserialize(response_data, response_type) - else: - deserialized_data = None + return_data = response_data + if _preload_content: + # deserialize response data + if response_type: + return_data = self.deserialize(response_data, response_type) + else: + return_data = None if callback: - callback(deserialized_data) if _return_http_data_only else callback((deserialized_data, response_data.status, response_data.getheaders())) + callback(return_data) if _return_http_data_only else callback((return_data, response_data.status, response_data.getheaders())) elif _return_http_data_only: - return (deserialized_data) + return (return_data) else: - return (deserialized_data, response_data.status, response_data.getheaders()) + return (return_data, response_data.status, response_data.getheaders()) def sanitize_for_serialization(self, obj): """ @@ -277,7 +279,7 @@ class ApiClient(object): path_params=None, query_params=None, header_params=None, body=None, post_params=None, files=None, response_type=None, auth_settings=None, callback=None, - _return_http_data_only=None, collection_formats=None): + _return_http_data_only=None, collection_formats=None, _preload_content=True): """ Makes the HTTP request (synchronous) and return the deserialized data. To make an async request, define a function for callback. @@ -307,13 +309,15 @@ class ApiClient(object): The method will return the request thread. If parameter callback is None, then the method will return the response directly. + :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without + reading/decoding response data. Default is True. """ if callback is None: return self.__call_api(resource_path, method, path_params, query_params, header_params, body, post_params, files, response_type, auth_settings, callback, - _return_http_data_only, collection_formats) + _return_http_data_only, collection_formats, _preload_content) else: thread = threading.Thread(target=self.__call_api, args=(resource_path, method, @@ -322,51 +326,58 @@ class ApiClient(object): post_params, files, response_type, auth_settings, callback, _return_http_data_only, - collection_formats)) + collection_formats, _preload_content)) thread.start() return thread def request(self, method, url, query_params=None, headers=None, - post_params=None, body=None): + post_params=None, body=None, _preload_content=True): """ Makes the HTTP request using RESTClient. """ if method == "GET": return self.rest_client.GET(url, query_params=query_params, + _preload_content=_preload_content, headers=headers) elif method == "HEAD": return self.rest_client.HEAD(url, query_params=query_params, + _preload_content=_preload_content, headers=headers) elif method == "OPTIONS": return self.rest_client.OPTIONS(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "POST": return self.rest_client.POST(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "PUT": return self.rest_client.PUT(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "PATCH": return self.rest_client.PATCH(url, query_params=query_params, headers=headers, post_params=post_params, + _preload_content=_preload_content, body=body) elif method == "DELETE": return self.rest_client.DELETE(url, query_params=query_params, headers=headers, + _preload_content=_preload_content, body=body) else: raise ValueError( diff --git a/samples/client/petstore/python/petstore_api/apis/fake_api.py b/samples/client/petstore/python/petstore_api/apis/fake_api.py index 944396a9fdc..cdf79483bc9 100644 --- a/samples/client/petstore/python/petstore_api/apis/fake_api.py +++ b/samples/client/petstore/python/petstore_api/apis/fake_api.py @@ -102,6 +102,7 @@ class FakeApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -157,6 +158,7 @@ class FakeApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def test_endpoint_parameters(self, number, double, pattern_without_delimiter, byte, **kwargs): @@ -236,6 +238,7 @@ class FakeApi(object): all_params = ['number', 'double', 'pattern_without_delimiter', 'byte', 'integer', 'int32', 'int64', 'float', 'string', 'binary', 'date', 'date_time', 'password', 'param_callback'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -352,6 +355,7 @@ class FakeApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def test_enum_parameters(self, **kwargs): @@ -419,6 +423,7 @@ class FakeApi(object): all_params = ['enum_form_string_array', 'enum_form_string', 'enum_header_string_array', 'enum_header_string', 'enum_query_string_array', 'enum_query_string', 'enum_query_integer', 'enum_query_double'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -466,13 +471,13 @@ class FakeApi(object): # HTTP header `Accept` header_params['Accept'] = self.api_client.\ - select_header_accept(['application/json']) + select_header_accept(['*/*']) if not header_params['Accept']: del header_params['Accept'] # HTTP header `Content-Type` header_params['Content-Type'] = self.api_client.\ - select_header_content_type(['application/json']) + select_header_content_type(['*/*']) # Authentication setting auth_settings = [] @@ -488,4 +493,5 @@ class FakeApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) diff --git a/samples/client/petstore/python/petstore_api/apis/pet_api.py b/samples/client/petstore/python/petstore_api/apis/pet_api.py index b0aa2d9a842..d8c5eefc946 100644 --- a/samples/client/petstore/python/petstore_api/apis/pet_api.py +++ b/samples/client/petstore/python/petstore_api/apis/pet_api.py @@ -102,6 +102,7 @@ class PetApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -157,6 +158,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def delete_pet(self, pet_id, **kwargs): @@ -212,6 +214,7 @@ class PetApi(object): all_params = ['pet_id', 'api_key'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -269,6 +272,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def find_pets_by_status(self, status, **kwargs): @@ -322,6 +326,7 @@ class PetApi(object): all_params = ['status'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -378,6 +383,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def find_pets_by_tags(self, tags, **kwargs): @@ -431,6 +437,7 @@ class PetApi(object): all_params = ['tags'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -487,6 +494,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def get_pet_by_id(self, pet_id, **kwargs): @@ -540,6 +548,7 @@ class PetApi(object): all_params = ['pet_id'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -595,6 +604,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def update_pet(self, body, **kwargs): @@ -648,6 +658,7 @@ class PetApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -703,6 +714,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def update_pet_with_form(self, pet_id, **kwargs): @@ -760,6 +772,7 @@ class PetApi(object): all_params = ['pet_id', 'name', 'status'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -819,6 +832,7 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def upload_file(self, pet_id, **kwargs): @@ -876,6 +890,7 @@ class PetApi(object): all_params = ['pet_id', 'additional_metadata', 'file'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -935,4 +950,5 @@ class PetApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) diff --git a/samples/client/petstore/python/petstore_api/apis/store_api.py b/samples/client/petstore/python/petstore_api/apis/store_api.py index c7f37de09e8..adcf8d2b4ed 100644 --- a/samples/client/petstore/python/petstore_api/apis/store_api.py +++ b/samples/client/petstore/python/petstore_api/apis/store_api.py @@ -102,6 +102,7 @@ class StoreApi(object): all_params = ['order_id'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -159,6 +160,7 @@ class StoreApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def get_inventory(self, **kwargs): @@ -210,6 +212,7 @@ class StoreApi(object): all_params = [] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -260,6 +263,7 @@ class StoreApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def get_order_by_id(self, order_id, **kwargs): @@ -313,6 +317,7 @@ class StoreApi(object): all_params = ['order_id'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -372,6 +377,7 @@ class StoreApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def place_order(self, body, **kwargs): @@ -425,6 +431,7 @@ class StoreApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -480,4 +487,5 @@ class StoreApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) diff --git a/samples/client/petstore/python/petstore_api/apis/user_api.py b/samples/client/petstore/python/petstore_api/apis/user_api.py index cc7f2d35083..255b68a8c7f 100644 --- a/samples/client/petstore/python/petstore_api/apis/user_api.py +++ b/samples/client/petstore/python/petstore_api/apis/user_api.py @@ -102,6 +102,7 @@ class UserApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -157,6 +158,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def create_users_with_array_input(self, body, **kwargs): @@ -210,6 +212,7 @@ class UserApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -265,6 +268,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def create_users_with_list_input(self, body, **kwargs): @@ -318,6 +322,7 @@ class UserApi(object): all_params = ['body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -373,6 +378,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def delete_user(self, username, **kwargs): @@ -426,6 +432,7 @@ class UserApi(object): all_params = ['username'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -481,6 +488,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def get_user_by_name(self, username, **kwargs): @@ -534,6 +542,7 @@ class UserApi(object): all_params = ['username'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -589,6 +598,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def login_user(self, username, password, **kwargs): @@ -644,6 +654,7 @@ class UserApi(object): all_params = ['username', 'password'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -704,6 +715,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def logout_user(self, **kwargs): @@ -755,6 +767,7 @@ class UserApi(object): all_params = [] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -805,6 +818,7 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) def update_user(self, username, body, **kwargs): @@ -860,6 +874,7 @@ class UserApi(object): all_params = ['username', 'body'] all_params.append('callback') all_params.append('_return_http_data_only') + all_params.append('_preload_content') params = locals() for key, val in iteritems(params['kwargs']): @@ -920,4 +935,5 @@ class UserApi(object): auth_settings=auth_settings, callback=params.get('callback'), _return_http_data_only=params.get('_return_http_data_only'), + _preload_content=params.get('_preload_content', True), collection_formats=collection_formats) diff --git a/samples/client/petstore/python/petstore_api/rest.py b/samples/client/petstore/python/petstore_api/rest.py index f8a4457ebae..c61b29c8120 100644 --- a/samples/client/petstore/python/petstore_api/rest.py +++ b/samples/client/petstore/python/petstore_api/rest.py @@ -105,7 +105,7 @@ class RESTClientObject(object): ) def request(self, method, url, query_params=None, headers=None, - body=None, post_params=None): + body=None, post_params=None, _preload_content=True): """ :param method: http request method :param url: http request url @@ -115,6 +115,8 @@ class RESTClientObject(object): :param post_params: request post parameters, `application/x-www-form-urlencoded` and `multipart/form-data` + :param _preload_content: if False, the urllib3.HTTPResponse object will be returned without + reading/decoding response data. Default is True. """ method = method.upper() assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH', 'OPTIONS'] @@ -141,11 +143,13 @@ class RESTClientObject(object): request_body = json.dumps(body) r = self.pool_manager.request(method, url, body=request_body, + preload_content=_preload_content, headers=headers) elif headers['Content-Type'] == 'application/x-www-form-urlencoded': r = self.pool_manager.request(method, url, fields=post_params, encode_multipart=False, + preload_content=_preload_content, headers=headers) elif headers['Content-Type'] == 'multipart/form-data': # must del headers['Content-Type'], or the correct Content-Type @@ -154,6 +158,7 @@ class RESTClientObject(object): r = self.pool_manager.request(method, url, fields=post_params, encode_multipart=True, + preload_content=_preload_content, headers=headers) # Pass a `string` parameter directly in the body to support # other content types than Json when `body` argument is provided @@ -162,6 +167,7 @@ class RESTClientObject(object): request_body = body r = self.pool_manager.request(method, url, body=request_body, + preload_content=_preload_content, headers=headers) else: # Cannot generate the request from given parameters @@ -172,68 +178,77 @@ class RESTClientObject(object): else: r = self.pool_manager.request(method, url, fields=query_params, + preload_content=_preload_content, headers=headers) except urllib3.exceptions.SSLError as e: msg = "{0}\n{1}".format(type(e).__name__, str(e)) raise ApiException(status=0, reason=msg) - r = RESTResponse(r) + if _preload_content: + r = RESTResponse(r) - # In the python 3, the response.data is bytes. - # we need to decode it to string. - if PY3: - r.data = r.data.decode('utf8') + # In the python 3, the response.data is bytes. + # we need to decode it to string. + if PY3: + r.data = r.data.decode('utf8') - # log response body - logger.debug("response body: %s", r.data) + # log response body + logger.debug("response body: %s", r.data) if r.status not in range(200, 206): raise ApiException(http_resp=r) return r - def GET(self, url, headers=None, query_params=None): + def GET(self, url, headers=None, query_params=None, _preload_content=True): return self.request("GET", url, headers=headers, + _preload_content=_preload_content, query_params=query_params) - def HEAD(self, url, headers=None, query_params=None): + def HEAD(self, url, headers=None, query_params=None, _preload_content=True): return self.request("HEAD", url, headers=headers, + _preload_content=_preload_content, query_params=query_params) - def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None): + def OPTIONS(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("OPTIONS", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def DELETE(self, url, headers=None, query_params=None, body=None): + def DELETE(self, url, headers=None, query_params=None, body=None, _preload_content=True): return self.request("DELETE", url, headers=headers, query_params=query_params, + _preload_content=_preload_content, body=body) - def POST(self, url, headers=None, query_params=None, post_params=None, body=None): + def POST(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("POST", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def PUT(self, url, headers=None, query_params=None, post_params=None, body=None): + def PUT(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("PUT", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body) - def PATCH(self, url, headers=None, query_params=None, post_params=None, body=None): + def PATCH(self, url, headers=None, query_params=None, post_params=None, body=None, _preload_content=True): return self.request("PATCH", url, headers=headers, query_params=query_params, post_params=post_params, + _preload_content=_preload_content, body=body)