forked from loafle/openapi-generator-original
to fix #2306
This commit is contained in:
parent
a92a9f2a03
commit
c51f4c629e
@ -7,6 +7,7 @@ import java.util.*;
|
|||||||
public class CodegenModel {
|
public class CodegenModel {
|
||||||
public String parent, parentSchema;
|
public String parent, parentSchema;
|
||||||
public String name, classname, description, classVarName, modelJson, dataType;
|
public String name, classname, description, classVarName, modelJson, dataType;
|
||||||
|
public String classFilename; // store the class file name, mainly used for import
|
||||||
public String unescapedDescription;
|
public String unescapedDescription;
|
||||||
public String discriminator;
|
public String discriminator;
|
||||||
public String defaultValue;
|
public String defaultValue;
|
||||||
|
@ -877,6 +877,7 @@ public class DefaultCodegen {
|
|||||||
m.unescapedDescription = model.getDescription();
|
m.unescapedDescription = model.getDescription();
|
||||||
m.classname = toModelName(name);
|
m.classname = toModelName(name);
|
||||||
m.classVarName = toVarName(name);
|
m.classVarName = toVarName(name);
|
||||||
|
m.classFilename = toModelFilename(name);
|
||||||
m.modelJson = Json.pretty(model);
|
m.modelJson = Json.pretty(model);
|
||||||
m.externalDocs = model.getExternalDocs();
|
m.externalDocs = model.getExternalDocs();
|
||||||
m.vendorExtensions = model.getVendorExtensions();
|
m.vendorExtensions = model.getVendorExtensions();
|
||||||
|
@ -212,8 +212,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toModelName(String name) {
|
public String toModelName(String name) {
|
||||||
name = sanitizeName(modelNamePrefix + name + modelNameSuffix); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
||||||
|
|
||||||
// remove dollar sign
|
// remove dollar sign
|
||||||
name = name.replaceAll("$", "");
|
name = name.replaceAll("$", "");
|
||||||
|
|
||||||
@ -223,6 +222,14 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
name = "object_" + name; // e.g. return => ObjectReturn (after camelize)
|
name = "object_" + name; // e.g. return => ObjectReturn (after camelize)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(modelNamePrefix)) {
|
||||||
|
name = modelNamePrefix + "_" + name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(modelNameSuffix)) {
|
||||||
|
name = name + "_" + modelNameSuffix;
|
||||||
|
}
|
||||||
|
|
||||||
// camelize the model name
|
// camelize the model name
|
||||||
// phone_number => PhoneNumber
|
// phone_number => PhoneNumber
|
||||||
return camelize(name);
|
return camelize(name);
|
||||||
@ -230,6 +237,10 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toModelFilename(String name) {
|
public String toModelFilename(String name) {
|
||||||
|
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
||||||
|
// remove dollar sign
|
||||||
|
name = name.replaceAll("$", "");
|
||||||
|
|
||||||
// model name cannot use reserved keyword, e.g. return
|
// model name cannot use reserved keyword, e.g. return
|
||||||
if (isReservedWord(name)) {
|
if (isReservedWord(name)) {
|
||||||
LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + underscore(dropDots("object_" + name)));
|
LOGGER.warn(name + " (reserved word) cannot be used as model filename. Renamed to " + underscore(dropDots("object_" + name)));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
# import models into model package
|
# import models into model package
|
||||||
{{#models}}{{#model}}from .{{classVarName}} import {{classname}}{{/model}}
|
{{#models}}{{#model}}from .{{classFilename}} import {{classname}}{{/model}}
|
||||||
{{/models}}
|
{{/models}}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
# import models into sdk package
|
# import models into sdk package
|
||||||
{{#models}}{{#model}}from .models.{{classVarName}} import {{classname}}
|
{{#models}}{{#model}}from .models.{{classFilename}} import {{classname}}
|
||||||
{{/model}}{{/models}}
|
{{/model}}{{/models}}
|
||||||
# import apis into sdk package
|
# import apis into sdk package
|
||||||
{{#apiInfo}}{{#apis}}from .apis.{{classVarName}} import {{classname}}
|
{{#apiInfo}}{{#apis}}from .apis.{{classVarName}} import {{classname}}
|
||||||
|
@ -1251,6 +1251,28 @@
|
|||||||
"xml": {
|
"xml": {
|
||||||
"name": "Order"
|
"name": "Order"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"$special[model.name]": {
|
||||||
|
"properties": {
|
||||||
|
"$special[property.name]": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int64"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xml": {
|
||||||
|
"name": "$special[model.name]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Return": {
|
||||||
|
"properties": {
|
||||||
|
"return": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xml": {
|
||||||
|
"name": "Return"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,10 @@ from .models.user import User
|
|||||||
from .models.category import Category
|
from .models.category import Category
|
||||||
from .models.pet import Pet
|
from .models.pet import Pet
|
||||||
from .models.tag import Tag
|
from .models.tag import Tag
|
||||||
|
from .models.object_return import ObjectReturn
|
||||||
from .models.order import Order
|
from .models.order import Order
|
||||||
|
from .models.special_model_name import SpecialModelName
|
||||||
|
from .models.inline_response_200 import InlineResponse200
|
||||||
|
|
||||||
# import apis into sdk package
|
# import apis into sdk package
|
||||||
from .apis.user_api import UserApi
|
from .apis.user_api import UserApi
|
||||||
|
@ -664,6 +664,83 @@ class PetApi(object):
|
|||||||
callback=params.get('callback'))
|
callback=params.get('callback'))
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
def get_pet_by_id_in_object(self, pet_id, **kwargs):
|
||||||
|
"""
|
||||||
|
Fake endpoint to test inline arbitrary object return by 'Find pet by ID'
|
||||||
|
Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions
|
||||||
|
|
||||||
|
This method makes a synchronous HTTP request by default. To make an
|
||||||
|
asynchronous HTTP request, please define a `callback` function
|
||||||
|
to be invoked when receiving the response.
|
||||||
|
>>> def callback_function(response):
|
||||||
|
>>> pprint(response)
|
||||||
|
>>>
|
||||||
|
>>> thread = api.get_pet_by_id_in_object(pet_id, callback=callback_function)
|
||||||
|
|
||||||
|
:param callback function: The callback function
|
||||||
|
for asynchronous request. (optional)
|
||||||
|
:param int pet_id: ID of pet that needs to be fetched (required)
|
||||||
|
:return: InlineResponse200
|
||||||
|
If the method is called asynchronously,
|
||||||
|
returns the request thread.
|
||||||
|
"""
|
||||||
|
|
||||||
|
all_params = ['pet_id']
|
||||||
|
all_params.append('callback')
|
||||||
|
|
||||||
|
params = locals()
|
||||||
|
for key, val in iteritems(params['kwargs']):
|
||||||
|
if key not in all_params:
|
||||||
|
raise TypeError(
|
||||||
|
"Got an unexpected keyword argument '%s'"
|
||||||
|
" to method get_pet_by_id_in_object" % key
|
||||||
|
)
|
||||||
|
params[key] = val
|
||||||
|
del params['kwargs']
|
||||||
|
|
||||||
|
# verify the required parameter 'pet_id' is set
|
||||||
|
if ('pet_id' not in params) or (params['pet_id'] is None):
|
||||||
|
raise ValueError("Missing the required parameter `pet_id` when calling `get_pet_by_id_in_object`")
|
||||||
|
|
||||||
|
resource_path = '/pet/{petId}?response=inline_arbitrary_object'.replace('{format}', 'json')
|
||||||
|
path_params = {}
|
||||||
|
if 'pet_id' in params:
|
||||||
|
path_params['petId'] = params['pet_id']
|
||||||
|
|
||||||
|
query_params = {}
|
||||||
|
|
||||||
|
header_params = {}
|
||||||
|
|
||||||
|
form_params = []
|
||||||
|
local_var_files = {}
|
||||||
|
|
||||||
|
body_params = None
|
||||||
|
|
||||||
|
# HTTP header `Accept`
|
||||||
|
header_params['Accept'] = self.api_client.\
|
||||||
|
select_header_accept(['application/json', 'application/xml'])
|
||||||
|
if not header_params['Accept']:
|
||||||
|
del header_params['Accept']
|
||||||
|
|
||||||
|
# HTTP header `Content-Type`
|
||||||
|
header_params['Content-Type'] = self.api_client.\
|
||||||
|
select_header_content_type([])
|
||||||
|
|
||||||
|
# Authentication setting
|
||||||
|
auth_settings = ['api_key', 'petstore_auth']
|
||||||
|
|
||||||
|
response = self.api_client.call_api(resource_path, 'GET',
|
||||||
|
path_params,
|
||||||
|
query_params,
|
||||||
|
header_params,
|
||||||
|
body=body_params,
|
||||||
|
post_params=form_params,
|
||||||
|
files=local_var_files,
|
||||||
|
response_type='InlineResponse200',
|
||||||
|
auth_settings=auth_settings,
|
||||||
|
callback=params.get('callback'))
|
||||||
|
return response
|
||||||
|
|
||||||
def pet_pet_idtesting_byte_arraytrue_get(self, pet_id, **kwargs):
|
def pet_pet_idtesting_byte_arraytrue_get(self, pet_id, **kwargs):
|
||||||
"""
|
"""
|
||||||
Fake endpoint to test byte array return by 'Find pet by ID'
|
Fake endpoint to test byte array return by 'Find pet by ID'
|
||||||
|
@ -190,6 +190,77 @@ class StoreApi(object):
|
|||||||
callback=params.get('callback'))
|
callback=params.get('callback'))
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
def get_inventory_in_object(self, **kwargs):
|
||||||
|
"""
|
||||||
|
Fake endpoint to test arbitrary object return by 'Get inventory'
|
||||||
|
Returns an arbitrary object which is actually a map of status codes to quantities
|
||||||
|
|
||||||
|
This method makes a synchronous HTTP request by default. To make an
|
||||||
|
asynchronous HTTP request, please define a `callback` function
|
||||||
|
to be invoked when receiving the response.
|
||||||
|
>>> def callback_function(response):
|
||||||
|
>>> pprint(response)
|
||||||
|
>>>
|
||||||
|
>>> thread = api.get_inventory_in_object(callback=callback_function)
|
||||||
|
|
||||||
|
:param callback function: The callback function
|
||||||
|
for asynchronous request. (optional)
|
||||||
|
:return: object
|
||||||
|
If the method is called asynchronously,
|
||||||
|
returns the request thread.
|
||||||
|
"""
|
||||||
|
|
||||||
|
all_params = []
|
||||||
|
all_params.append('callback')
|
||||||
|
|
||||||
|
params = locals()
|
||||||
|
for key, val in iteritems(params['kwargs']):
|
||||||
|
if key not in all_params:
|
||||||
|
raise TypeError(
|
||||||
|
"Got an unexpected keyword argument '%s'"
|
||||||
|
" to method get_inventory_in_object" % key
|
||||||
|
)
|
||||||
|
params[key] = val
|
||||||
|
del params['kwargs']
|
||||||
|
|
||||||
|
|
||||||
|
resource_path = '/store/inventory?response=arbitrary_object'.replace('{format}', 'json')
|
||||||
|
path_params = {}
|
||||||
|
|
||||||
|
query_params = {}
|
||||||
|
|
||||||
|
header_params = {}
|
||||||
|
|
||||||
|
form_params = []
|
||||||
|
local_var_files = {}
|
||||||
|
|
||||||
|
body_params = None
|
||||||
|
|
||||||
|
# HTTP header `Accept`
|
||||||
|
header_params['Accept'] = self.api_client.\
|
||||||
|
select_header_accept(['application/json', 'application/xml'])
|
||||||
|
if not header_params['Accept']:
|
||||||
|
del header_params['Accept']
|
||||||
|
|
||||||
|
# HTTP header `Content-Type`
|
||||||
|
header_params['Content-Type'] = self.api_client.\
|
||||||
|
select_header_content_type([])
|
||||||
|
|
||||||
|
# Authentication setting
|
||||||
|
auth_settings = ['api_key']
|
||||||
|
|
||||||
|
response = self.api_client.call_api(resource_path, 'GET',
|
||||||
|
path_params,
|
||||||
|
query_params,
|
||||||
|
header_params,
|
||||||
|
body=body_params,
|
||||||
|
post_params=form_params,
|
||||||
|
files=local_var_files,
|
||||||
|
response_type='object',
|
||||||
|
auth_settings=auth_settings,
|
||||||
|
callback=params.get('callback'))
|
||||||
|
return response
|
||||||
|
|
||||||
def place_order(self, **kwargs):
|
def place_order(self, **kwargs):
|
||||||
"""
|
"""
|
||||||
Place an order for a pet
|
Place an order for a pet
|
||||||
|
@ -5,4 +5,7 @@ from .user import User
|
|||||||
from .category import Category
|
from .category import Category
|
||||||
from .pet import Pet
|
from .pet import Pet
|
||||||
from .tag import Tag
|
from .tag import Tag
|
||||||
|
from .object_return import ObjectReturn
|
||||||
from .order import Order
|
from .order import Order
|
||||||
|
from .special_model_name import SpecialModelName
|
||||||
|
from .inline_response_200 import InlineResponse200
|
||||||
|
Loading…
x
Reference in New Issue
Block a user