forked from loafle/openapi-generator-original
add support for inline array model defined in inline model
This commit is contained in:
parent
c5c1712374
commit
c8a10aee33
@ -157,6 +157,7 @@ public class InlineModelResolver {
|
|||||||
flattenProperties(properties, modelName);
|
flattenProperties(properties, modelName);
|
||||||
|
|
||||||
} else if (model instanceof ArrayModel) {
|
} else if (model instanceof ArrayModel) {
|
||||||
|
LOGGER.info("arry model of " + modelName);
|
||||||
ArrayModel m = (ArrayModel) model;
|
ArrayModel m = (ArrayModel) model;
|
||||||
Property inner = m.getItems();
|
Property inner = m.getItems();
|
||||||
if (inner instanceof ObjectProperty) {
|
if (inner instanceof ObjectProperty) {
|
||||||
@ -223,6 +224,7 @@ public class InlineModelResolver {
|
|||||||
Property property = properties.get(key);
|
Property property = properties.get(key);
|
||||||
if (property instanceof ObjectProperty && ((ObjectProperty)property).getProperties().size() > 0) {
|
if (property instanceof ObjectProperty && ((ObjectProperty)property).getProperties().size() > 0) {
|
||||||
String modelName = uniqueName(path + "_" + key);
|
String modelName = uniqueName(path + "_" + key);
|
||||||
|
LOGGER.info("flattening: " + modelName);
|
||||||
|
|
||||||
ObjectProperty op = (ObjectProperty) property;
|
ObjectProperty op = (ObjectProperty) property;
|
||||||
Model model = modelFromProperty(op, modelName);
|
Model model = modelFromProperty(op, modelName);
|
||||||
@ -237,7 +239,31 @@ public class InlineModelResolver {
|
|||||||
addGenerated(modelName, model);
|
addGenerated(modelName, model);
|
||||||
swagger.addDefinition(modelName, model);
|
swagger.addDefinition(modelName, model);
|
||||||
}
|
}
|
||||||
|
} else if (property instanceof ArrayProperty) {
|
||||||
|
ArrayProperty ap = (ArrayProperty) property;
|
||||||
|
Property inner = ap.getItems();
|
||||||
|
|
||||||
|
if (inner instanceof ObjectProperty) {
|
||||||
|
String modelName = uniqueName(path + "_" + key);
|
||||||
|
LOGGER.info("flattening(array inner): " + modelName);
|
||||||
|
|
||||||
|
ObjectProperty op = (ObjectProperty) inner;
|
||||||
|
flattenProperties(op.getProperties(), path);
|
||||||
|
|
||||||
|
Model inner_model = modelFromProperty(op, modelName);
|
||||||
|
String existing = matchGenerated(inner_model);
|
||||||
|
|
||||||
|
if (existing != null) {
|
||||||
|
ap.setItems(new RefProperty(existing));
|
||||||
} else {
|
} else {
|
||||||
|
ap.setItems(new RefProperty(modelName));
|
||||||
|
addGenerated(modelName, inner_model);
|
||||||
|
LOGGER.info("flattening(array inner): " + modelName);
|
||||||
|
swagger.addDefinition(modelName, inner_model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LOGGER.info("not flattening " + key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (propsToUpdate.size() > 0) {
|
if (propsToUpdate.size() > 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user