forked from loafle/openapi-generator-original
Fix parameter schema mapping (#12893)
* fix parameter schema mapping,refactor unaliasSchema * minor code format change
This commit is contained in:
parent
a9e63f4ce3
commit
bdd54dacad
@ -313,7 +313,7 @@ public interface CodegenConfig {
|
||||
|
||||
void setRemoveEnumValuePrefix(boolean removeEnumValuePrefix);
|
||||
|
||||
Schema unaliasSchema(Schema schema, Map<String, String> schemaMappings);
|
||||
Schema unaliasSchema(Schema schema);
|
||||
|
||||
String defaultTemplatingEngine();
|
||||
|
||||
|
@ -2203,8 +2203,8 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Schema unaliasSchema(Schema schema, Map<String, String> schemaMappings) {
|
||||
return ModelUtils.unaliasSchema(this.openAPI, schema, schemaMappings);
|
||||
public Schema unaliasSchema(Schema schema) {
|
||||
return ModelUtils.unaliasSchema(this.openAPI, schema, schemaMapping);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -2214,7 +2214,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
* @return the string representation of the schema type.
|
||||
*/
|
||||
protected String getSingleSchemaType(Schema schema) {
|
||||
Schema unaliasSchema = unaliasSchema(schema, schemaMapping);
|
||||
Schema unaliasSchema = unaliasSchema(schema);
|
||||
|
||||
if (StringUtils.isNotBlank(unaliasSchema.get$ref())) { // reference to another definition/schema
|
||||
// get the schema/model name from $ref
|
||||
@ -2546,7 +2546,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
m.interfaces = new ArrayList<>();
|
||||
|
||||
for (Schema interfaceSchema : interfaces) {
|
||||
interfaceSchema = unaliasSchema(interfaceSchema, schemaMapping);
|
||||
interfaceSchema = unaliasSchema(interfaceSchema);
|
||||
|
||||
if (StringUtils.isBlank(interfaceSchema.get$ref())) {
|
||||
// primitive type
|
||||
@ -2775,7 +2775,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
|
||||
// unalias schema
|
||||
schema = unaliasSchema(schema, schemaMapping);
|
||||
schema = unaliasSchema(schema);
|
||||
if (schema == null) {
|
||||
LOGGER.warn("Schema {} not found", name);
|
||||
return null;
|
||||
@ -3448,7 +3448,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
property.maxItems = p.getMaxProperties();
|
||||
|
||||
// handle inner property
|
||||
Schema innerSchema = unaliasSchema(getAdditionalProperties(p), schemaMapping);
|
||||
Schema innerSchema = unaliasSchema(getAdditionalProperties(p));
|
||||
if (innerSchema == null) {
|
||||
LOGGER.error("Undefined map inner type for `{}`. Default to String.", p.getName());
|
||||
innerSchema = new StringSchema().description("//TODO automatically added by openapi-generator due to undefined type");
|
||||
@ -3565,7 +3565,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
return cpc;
|
||||
}
|
||||
// unalias schema
|
||||
p = unaliasSchema(p, schemaMapping);
|
||||
p = unaliasSchema(p);
|
||||
|
||||
CodegenProperty property = CodegenModelFactory.newInstance(CodegenModelType.PROPERTY);
|
||||
property.required = required;
|
||||
@ -3734,7 +3734,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
itemName = property.name;
|
||||
}
|
||||
ArraySchema arraySchema = (ArraySchema) p;
|
||||
Schema innerSchema = unaliasSchema(getSchemaItems(arraySchema), schemaMapping);
|
||||
Schema innerSchema = unaliasSchema(getSchemaItems(arraySchema));
|
||||
CodegenProperty cp = fromProperty(itemName, innerSchema, false);
|
||||
updatePropertyForArray(property, cp);
|
||||
} else if (ModelUtils.isTypeObjectSchema(p)) {
|
||||
@ -3980,7 +3980,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
CodegenOperation op,
|
||||
ApiResponse methodResponse,
|
||||
Map<String, String> schemaMappings) {
|
||||
Schema responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(methodResponse), schemaMapping);
|
||||
Schema responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(methodResponse));
|
||||
|
||||
if (responseSchema != null) {
|
||||
CodegenProperty cm = fromProperty("response", responseSchema, false);
|
||||
@ -4420,7 +4420,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
|
||||
Schema responseSchema;
|
||||
if (this.openAPI != null && this.openAPI.getComponents() != null) {
|
||||
responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(response), schemaMapping);
|
||||
responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(response));
|
||||
} else { // no model/alias defined
|
||||
responseSchema = ModelUtils.getSchemaFromResponse(response);
|
||||
}
|
||||
@ -4712,7 +4712,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
String parameterModelName = null;
|
||||
|
||||
if (parameter.getSchema() != null) {
|
||||
parameterSchema = parameter.getSchema();
|
||||
parameterSchema = unaliasSchema(parameter.getSchema());
|
||||
parameterModelName = getParameterDataType(parameter, parameterSchema);
|
||||
CodegenProperty prop;
|
||||
if (this instanceof RustServerCodegen) {
|
||||
@ -4759,7 +4759,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
|
||||
// TODO need to reivew replacing empty map with schemaMapping instead
|
||||
parameterSchema = unaliasSchema(parameterSchema, Collections.emptyMap());
|
||||
parameterSchema = unaliasSchema(parameterSchema);
|
||||
if (parameterSchema == null) {
|
||||
LOGGER.warn("warning! Schema not found for parameter \" {} \"", parameter.getName());
|
||||
finishUpdatingParameter(codegenParameter, parameter);
|
||||
@ -4964,7 +4964,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
* @return data type
|
||||
*/
|
||||
protected String getParameterDataType(Parameter parameter, Schema schema) {
|
||||
Schema unaliasSchema = ModelUtils.unaliasSchema(openAPI, schema);
|
||||
Schema unaliasSchema = unaliasSchema(schema);
|
||||
if (unaliasSchema.get$ref() != null) {
|
||||
return toModelName(ModelUtils.getSimpleRef(unaliasSchema.get$ref()));
|
||||
}
|
||||
@ -5365,7 +5365,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
protected Map<String, Schema> unaliasPropertySchema(Map<String, Schema> properties) {
|
||||
if (properties != null) {
|
||||
for (String key : properties.keySet()) {
|
||||
properties.put(key, unaliasSchema(properties.get(key), schemaMapping()));
|
||||
properties.put(key, unaliasSchema(properties.get(key)));
|
||||
|
||||
}
|
||||
}
|
||||
@ -6491,7 +6491,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
LOGGER.debug("Debugging fromFormProperty {}: {}", name, propertySchema);
|
||||
CodegenProperty codegenProperty = fromProperty(name, propertySchema, false);
|
||||
|
||||
Schema ps = unaliasSchema(propertySchema, schemaMapping);
|
||||
Schema ps = unaliasSchema(propertySchema);
|
||||
ModelUtils.syncValidationProperties(ps, codegenParameter);
|
||||
codegenParameter.setTypeProperties(ps);
|
||||
codegenParameter.setComposedSchemas(getComposedSchemas(ps));
|
||||
@ -7002,7 +7002,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
name = ModelUtils.getSimpleRef(schema.get$ref());
|
||||
}
|
||||
|
||||
Schema unaliasedSchema = unaliasSchema(schema, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(schema);
|
||||
schema = ModelUtils.getReferencedSchema(this.openAPI, schema);
|
||||
|
||||
ModelUtils.syncValidationProperties(unaliasedSchema, codegenParameter);
|
||||
|
@ -477,7 +477,7 @@ public class DefaultGenerator implements Generator {
|
||||
// generators may choose to make models for use case 2 + 3
|
||||
Schema refSchema = new Schema();
|
||||
refSchema.set$ref("#/components/schemas/" + name);
|
||||
Schema unaliasedSchema = config.unaliasSchema(refSchema, config.schemaMapping());
|
||||
Schema unaliasedSchema = config.unaliasSchema(refSchema);
|
||||
if (unaliasedSchema.get$ref() == null) {
|
||||
LOGGER.info("Model {} not generated since it's a free-form object", name);
|
||||
continue;
|
||||
|
@ -445,7 +445,8 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
|
||||
return underscore(toModelName(name));
|
||||
}
|
||||
|
||||
@Override public String toModelDocFilename(String name) {
|
||||
@Override
|
||||
public String toModelDocFilename(String name) {
|
||||
return toModelName(name);
|
||||
}
|
||||
|
||||
@ -488,7 +489,7 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
|
||||
|
||||
@Override
|
||||
public String getTypeDeclaration(Schema p) {
|
||||
Schema<?> schema = ModelUtils.unaliasSchema(this.openAPI, p, schemaMapping);
|
||||
Schema<?> schema = unaliasSchema(p);
|
||||
Schema<?> target = ModelUtils.isGenerateAliasAsModel() ? p : schema;
|
||||
if (ModelUtils.isArraySchema(target)) {
|
||||
Schema<?> items = getSchemaItems((ArraySchema) schema);
|
||||
@ -819,5 +820,7 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.DART; }
|
||||
public GeneratorLanguage generatorLanguage() {
|
||||
return GeneratorLanguage.DART;
|
||||
}
|
||||
}
|
||||
|
@ -346,7 +346,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
|
||||
// specification is aligned with the JSON schema specification.
|
||||
// When "items" is not specified, the elements of the array may be anything at all.
|
||||
if (inner != null) {
|
||||
inner = ModelUtils.unaliasSchema(this.openAPI, inner, schemaMapping);
|
||||
inner = unaliasSchema(inner);
|
||||
}
|
||||
String typDecl;
|
||||
if (inner != null) {
|
||||
@ -360,7 +360,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
|
||||
return "[]" + typDecl;
|
||||
} else if (ModelUtils.isMapSchema(p)) {
|
||||
Schema inner = getAdditionalProperties(p);
|
||||
return getSchemaType(p) + "[string]" + getTypeDeclaration(ModelUtils.unaliasSchema(this.openAPI, inner, schemaMapping));
|
||||
return getSchemaType(p) + "[string]" + getTypeDeclaration(unaliasSchema(inner));
|
||||
}
|
||||
|
||||
//return super.getTypeDeclaration(p);
|
||||
@ -792,7 +792,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
|
||||
|
||||
@Override
|
||||
public String toDefaultValue(Schema schema) {
|
||||
schema = ModelUtils.unaliasSchema(this.openAPI, schema, schemaMapping);
|
||||
schema = unaliasSchema(schema);
|
||||
if (schema.getDefault() != null) {
|
||||
return schema.getDefault().toString();
|
||||
} else {
|
||||
|
@ -873,7 +873,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
|
||||
@Override
|
||||
public String getTypeDeclaration(Schema p) {
|
||||
Schema<?> schema = ModelUtils.unaliasSchema(this.openAPI, p, schemaMapping);
|
||||
Schema<?> schema = unaliasSchema(p);
|
||||
Schema<?> target = ModelUtils.isGenerateAliasAsModel() ? p : schema;
|
||||
if (ModelUtils.isArraySchema(target)) {
|
||||
Schema<?> items = getSchemaItems((ArraySchema) schema);
|
||||
|
@ -365,7 +365,7 @@ public abstract class AbstractKotlinCodegen extends DefaultCodegen implements Co
|
||||
*/
|
||||
@Override
|
||||
public String getTypeDeclaration(Schema p) {
|
||||
Schema<?> schema = ModelUtils.unaliasSchema(this.openAPI, p, schemaMapping);
|
||||
Schema<?> schema = unaliasSchema(p);
|
||||
Schema<?> target = ModelUtils.isGenerateAliasAsModel() ? p : schema;
|
||||
if (ModelUtils.isArraySchema(target)) {
|
||||
Schema<?> items = getSchemaItems((ArraySchema) schema);
|
||||
|
@ -357,7 +357,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
|
||||
|
||||
@Override
|
||||
public String getTypeDeclaration(Schema p) {
|
||||
Schema<?> schema = ModelUtils.unaliasSchema(this.openAPI, p, schemaMapping);
|
||||
Schema<?> schema = unaliasSchema(p);
|
||||
Schema<?> target = ModelUtils.isGenerateAliasAsModel() ? p : schema;
|
||||
if (ModelUtils.isArraySchema(target)) {
|
||||
Schema<?> items = getSchemaItems((ArraySchema) schema);
|
||||
@ -611,5 +611,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.SCALA; }
|
||||
public GeneratorLanguage generatorLanguage() {
|
||||
return GeneratorLanguage.SCALA;
|
||||
}
|
||||
}
|
||||
|
@ -430,11 +430,11 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
|
||||
public String getTypeDeclaration(Schema p) {
|
||||
if (ModelUtils.isArraySchema(p)) {
|
||||
Schema<?> items = getSchemaItems((ArraySchema) p);
|
||||
return getSchemaType(p) + "<" + getTypeDeclaration(ModelUtils.unaliasSchema(this.openAPI, items, schemaMapping)) + ">";
|
||||
return getSchemaType(p) + "<" + getTypeDeclaration(unaliasSchema(items)) + ">";
|
||||
} else if (ModelUtils.isMapSchema(p)) {
|
||||
Schema<?> inner = getSchemaAdditionalProperties(p);
|
||||
String nullSafeSuffix = getNullSafeAdditionalProps() ? " | undefined" : "";
|
||||
return "{ [key: string]: " + getTypeDeclaration(ModelUtils.unaliasSchema(this.openAPI, inner, schemaMapping)) + nullSafeSuffix + "; }";
|
||||
return "{ [key: string]: " + getTypeDeclaration(unaliasSchema(inner)) + nullSafeSuffix + "; }";
|
||||
} else if (ModelUtils.isFileSchema(p)) {
|
||||
return "any";
|
||||
} else if (ModelUtils.isBinarySchema(p)) {
|
||||
@ -957,5 +957,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp
|
||||
}
|
||||
|
||||
@Override
|
||||
public GeneratorLanguage generatorLanguage() { return GeneratorLanguage.TYPESCRIPT; }
|
||||
public GeneratorLanguage generatorLanguage() {
|
||||
return GeneratorLanguage.TYPESCRIPT;
|
||||
}
|
||||
}
|
||||
|
@ -295,7 +295,7 @@ public class CppRestSdkClientCodegen extends AbstractCppCodegen {
|
||||
|
||||
if (methodResponse != null) {
|
||||
Schema response = ModelUtils.getSchemaFromResponse(methodResponse);
|
||||
response = ModelUtils.unaliasSchema(this.openAPI, response, schemaMapping);
|
||||
response = unaliasSchema(response);
|
||||
if (response != null) {
|
||||
CodegenProperty cm = fromProperty("response", response, false);
|
||||
op.vendorExtensions.put("x-codegen-response", cm);
|
||||
|
@ -215,7 +215,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Schema unaliasSchema(Schema schema, Map<String, String> schemaMappings) {
|
||||
public Schema unaliasSchema(Schema schema) {
|
||||
Map<String, Schema> allSchemas = ModelUtils.getSchemas(openAPI);
|
||||
if (allSchemas == null || allSchemas.isEmpty()) {
|
||||
// skip the warning as the spec can have no model defined
|
||||
@ -225,8 +225,8 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
|
||||
if (schema != null && StringUtils.isNotEmpty(schema.get$ref())) {
|
||||
String simpleRef = ModelUtils.getSimpleRef(schema.get$ref());
|
||||
if (schemaMappings.containsKey(simpleRef)) {
|
||||
LOGGER.debug("Schema unaliasing of {} omitted because aliased class is to be mapped to {}", simpleRef, schemaMappings.get(simpleRef));
|
||||
if (schemaMapping.containsKey(simpleRef)) {
|
||||
LOGGER.debug("Schema unaliasing of {} omitted because aliased class is to be mapped to {}", simpleRef, schemaMapping.get(simpleRef));
|
||||
return schema;
|
||||
}
|
||||
Schema ref = allSchemas.get(simpleRef);
|
||||
@ -240,8 +240,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
if (ModelUtils.isGenerateAliasAsModel(ref)) {
|
||||
return schema; // generate a model extending array
|
||||
} else {
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
} else if (ModelUtils.isComposedSchema(ref)) {
|
||||
return schema;
|
||||
@ -253,8 +252,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
return schema; // generate a model extending map
|
||||
} else {
|
||||
// treat it as a typical map
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
}
|
||||
} else if (ModelUtils.isObjectSchema(ref)) { // model
|
||||
@ -267,8 +265,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
} else if (!getAllOfDescendants(simpleRef, openAPI).isEmpty()) {
|
||||
return schema;
|
||||
} else {
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
}
|
||||
} else if (ModelUtils.hasValidation(ref)) {
|
||||
@ -279,7 +276,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
// - use those validations when we use this schema in composed oneOf schemas
|
||||
return schema;
|
||||
} else {
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())), schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
}
|
||||
return schema;
|
||||
@ -407,7 +404,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
Map<String, Schema> allDefinitions = ModelUtils.getSchemas(this.openAPI);
|
||||
for (String schemaName : allDefinitions.keySet()) {
|
||||
Schema refSchema = new Schema().$ref("#/components/schemas/" + schemaName);
|
||||
Schema unaliasedSchema = unaliasSchema(refSchema, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(refSchema);
|
||||
String modelName = toModelName(schemaName);
|
||||
if (unaliasedSchema.get$ref() == null) {
|
||||
modelsToRemove.add(modelName);
|
||||
@ -517,7 +514,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
if (schema.get$ref() == null) {
|
||||
return cp;
|
||||
}
|
||||
Schema unaliasedSchema = unaliasSchema(schema, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(schema);
|
||||
CodegenProperty unaliasedProp = fromProperty("body", unaliasedSchema, false);
|
||||
Boolean dataTypeMismatch = !cp.dataType.equals(unaliasedProp.dataType);
|
||||
Boolean baseTypeMismatch = !cp.baseType.equals(unaliasedProp.complexType) && unaliasedProp.complexType != null;
|
||||
@ -547,7 +544,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
protected void addBodyModelSchema(CodegenParameter codegenParameter, String name, Schema schema, Set<String> imports, String bodyParameterName, boolean forceSimpleRef) {
|
||||
if (name != null) {
|
||||
Schema bodySchema = new Schema().$ref("#/components/schemas/" + name);
|
||||
Schema unaliased = unaliasSchema(bodySchema, schemaMapping);
|
||||
Schema unaliased = unaliasSchema(bodySchema);
|
||||
if (unaliased.get$ref() != null) {
|
||||
forceSimpleRef = true;
|
||||
}
|
||||
@ -758,7 +755,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
|
||||
public String getModelName(Schema sc) {
|
||||
if (sc.get$ref() != null) {
|
||||
Schema unaliasedSchema = unaliasSchema(sc, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(sc);
|
||||
if (unaliasedSchema.get$ref() != null) {
|
||||
return toModelName(ModelUtils.getSimpleRef(sc.get$ref()));
|
||||
}
|
||||
@ -851,7 +848,7 @@ public class PythonClientCodegen extends PythonLegacyClientCodegen {
|
||||
if (StringUtils.isNotEmpty(p.get$ref())) {
|
||||
// The input schema is a reference. If the resolved schema is
|
||||
// a composed schema, convert the name to a Python class.
|
||||
Schema unaliasedSchema = unaliasSchema(p, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(p);
|
||||
if (unaliasedSchema.get$ref() != null) {
|
||||
String modelName = toModelName(ModelUtils.getSimpleRef(p.get$ref()));
|
||||
if (referencedModelNames != null) {
|
||||
|
@ -564,7 +564,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Schema unaliasSchema(Schema schema, Map<String, String> schemaMappings) {
|
||||
public Schema unaliasSchema(Schema schema) {
|
||||
Map<String, Schema> allSchemas = ModelUtils.getSchemas(openAPI);
|
||||
if (allSchemas == null || allSchemas.isEmpty()) {
|
||||
// skip the warning as the spec can have no model defined
|
||||
@ -574,8 +574,8 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
|
||||
if (schema != null && StringUtils.isNotEmpty(schema.get$ref())) {
|
||||
String simpleRef = ModelUtils.getSimpleRef(schema.get$ref());
|
||||
if (schemaMappings.containsKey(simpleRef)) {
|
||||
LOGGER.debug("Schema unaliasing of {} omitted because aliased class is to be mapped to {}", simpleRef, schemaMappings.get(simpleRef));
|
||||
if (schemaMapping.containsKey(simpleRef)) {
|
||||
LOGGER.debug("Schema unaliasing of {} omitted because aliased class is to be mapped to {}", simpleRef, schemaMapping.get(simpleRef));
|
||||
return schema;
|
||||
}
|
||||
Schema ref = allSchemas.get(simpleRef);
|
||||
@ -589,8 +589,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
if (ModelUtils.isGenerateAliasAsModel(ref)) {
|
||||
return schema; // generate a model extending array
|
||||
} else {
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
} else if (ModelUtils.isComposedSchema(ref)) {
|
||||
return schema;
|
||||
@ -602,8 +601,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
return schema; // generate a model extending map
|
||||
} else {
|
||||
// treat it as a typical map
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
}
|
||||
} else if (ModelUtils.isObjectSchema(ref)) { // model
|
||||
@ -616,8 +614,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
} else if (getAllOfDescendants(simpleRef, openAPI).size() > 0) {
|
||||
return schema;
|
||||
}
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())),
|
||||
schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
} else if (ModelUtils.hasValidation(ref)) {
|
||||
// non object non array non map schemas that have validations
|
||||
@ -631,7 +628,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
// we make these models so instances of this will be subclasses of this model
|
||||
return schema;
|
||||
} else {
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())), schemaMappings);
|
||||
return unaliasSchema(allSchemas.get(ModelUtils.getSimpleRef(schema.get$ref())));
|
||||
}
|
||||
}
|
||||
return schema;
|
||||
@ -756,7 +753,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
Map<String, Schema> allDefinitions = ModelUtils.getSchemas(this.openAPI);
|
||||
for (String schemaName : allDefinitions.keySet()) {
|
||||
Schema refSchema = new Schema().$ref("#/components/schemas/" + schemaName);
|
||||
Schema unaliasedSchema = unaliasSchema(refSchema, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(refSchema);
|
||||
String modelName = toModelName(schemaName);
|
||||
if (unaliasedSchema.get$ref() == null) {
|
||||
continue;
|
||||
@ -877,7 +874,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
if (cp.isEnum) {
|
||||
updateCodegenPropertyEnum(cp);
|
||||
}
|
||||
Schema unaliasedSchema = unaliasSchema(p, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(p);
|
||||
if (cp.isPrimitiveType && unaliasedSchema.get$ref() != null) {
|
||||
cp.complexType = cp.dataType;
|
||||
}
|
||||
@ -965,7 +962,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
if (schema.get$ref() == null) {
|
||||
return cp;
|
||||
}
|
||||
Schema unaliasedSchema = unaliasSchema(schema, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(schema);
|
||||
CodegenProperty unaliasedProp = fromProperty("body", unaliasedSchema, false);
|
||||
Boolean dataTypeMismatch = !cp.dataType.equals(unaliasedProp.dataType);
|
||||
Boolean baseTypeMismatch = !cp.baseType.equals(unaliasedProp.complexType) && unaliasedProp.complexType != null;
|
||||
@ -996,7 +993,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
protected void addBodyModelSchema(CodegenParameter codegenParameter, String name, Schema schema, Set<String> imports, String bodyParameterName, boolean forceSimpleRef) {
|
||||
if (name != null) {
|
||||
Schema bodySchema = new Schema().$ref("#/components/schemas/" + name);
|
||||
Schema unaliased = unaliasSchema(bodySchema, schemaMapping);
|
||||
Schema unaliased = unaliasSchema(bodySchema);
|
||||
if (unaliased.get$ref() != null) {
|
||||
forceSimpleRef = true;
|
||||
}
|
||||
@ -1253,7 +1250,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
@Override
|
||||
public CodegenModel fromModel(String name, Schema sc) {
|
||||
CodegenModel cm = super.fromModel(name, sc);
|
||||
Schema unaliasedSchema = unaliasSchema(sc, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(sc);
|
||||
if (unaliasedSchema != null) {
|
||||
if (ModelUtils.isDecimalSchema(unaliasedSchema)) { // type: string, format: number
|
||||
cm.isString = false;
|
||||
@ -1304,7 +1301,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
|
||||
public String getModelName(Schema sc) {
|
||||
if (sc.get$ref() != null) {
|
||||
Schema unaliasedSchema = unaliasSchema(sc, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(sc);
|
||||
if (unaliasedSchema.get$ref() != null) {
|
||||
return toModelName(ModelUtils.getSimpleRef(sc.get$ref()));
|
||||
}
|
||||
@ -1341,7 +1338,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
if (StringUtils.isNotEmpty(p.get$ref())) {
|
||||
// The input schema is a reference. If the resolved schema is
|
||||
// a composed schema, convert the name to a Python class.
|
||||
Schema unaliasedSchema = unaliasSchema(p, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(p);
|
||||
if (unaliasedSchema.get$ref() != null) {
|
||||
String modelName = toModelName(ModelUtils.getSimpleRef(p.get$ref()));
|
||||
if (referencedModelNames != null) {
|
||||
|
@ -885,10 +885,10 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
Schema inner;
|
||||
if (ModelUtils.isArraySchema(p)) {
|
||||
inner = ((ArraySchema) p).getItems();
|
||||
return this.getSchemaType(p) + "<" + this.getTypeDeclaration(ModelUtils.unaliasSchema(this.openAPI, inner, schemaMapping)) + ">";
|
||||
return this.getSchemaType(p) + "<" + this.getTypeDeclaration(unaliasSchema(inner)) + ">";
|
||||
} else if (ModelUtils.isMapSchema(p)) {
|
||||
inner = (Schema) p.getAdditionalProperties();
|
||||
return "{ [key: string]: " + this.getTypeDeclaration(ModelUtils.unaliasSchema(this.openAPI, inner, schemaMapping)) + "; }";
|
||||
return "{ [key: string]: " + this.getTypeDeclaration(unaliasSchema(inner)) + "; }";
|
||||
} else if (ModelUtils.isFileSchema(p)) {
|
||||
return "HttpFile";
|
||||
} else if (ModelUtils.isBinarySchema(p)) {
|
||||
@ -940,7 +940,7 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
|
||||
|
||||
public String getModelName(Schema sc) {
|
||||
if (sc.get$ref() != null) {
|
||||
Schema unaliasedSchema = unaliasSchema(sc, schemaMapping);
|
||||
Schema unaliasedSchema = unaliasSchema(sc);
|
||||
if (unaliasedSchema.get$ref() != null) {
|
||||
return toModelName(ModelUtils.getSimpleRef(sc.get$ref()));
|
||||
}
|
||||
|
@ -510,7 +510,7 @@ public class TypeScriptFetchClientCodegen extends AbstractTypeScriptClientCodege
|
||||
}
|
||||
|
||||
if (!op.hasReturnPassthroughVoid) {
|
||||
Schema responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(methodResponse), schemaMapping);
|
||||
Schema responseSchema = unaliasSchema(ModelUtils.getSchemaFromResponse(methodResponse));
|
||||
ExtendedCodegenProperty cp = null;
|
||||
if (op.returnPassthrough instanceof String && cm != null) {
|
||||
cp = (ExtendedCodegenProperty) this.processCodeGenModel(cm).vars.get(1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user