diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java index d2f47f2a6f6d..f727560210ad 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/InlineModelResolver.java @@ -45,13 +45,15 @@ public class InlineModelResolver { if (bp.getSchema() != null) { Model model = bp.getSchema(); if(model instanceof ModelImpl) { - String modelName = uniqueName(bp.getName()); ModelImpl obj = (ModelImpl) model; - flattenProperties(obj.getProperties(), pathname); + if (obj.getType() == null || "object".equals(obj.getType())) { + String modelName = uniqueName(bp.getName()); + flattenProperties(obj.getProperties(), pathname); - bp.setSchema(new RefModel(modelName)); - addGenerated(modelName, model); - swagger.addDefinition(modelName, model); + bp.setSchema(new RefModel(modelName)); + addGenerated(modelName, model); + swagger.addDefinition(modelName, model); + } } else if (model instanceof ArrayModel) { ArrayModel am = (ArrayModel) model; diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/InlineModelResolverTest.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/InlineModelResolverTest.java index fa1bf8bab401..68d64562eba6 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/InlineModelResolverTest.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/InlineModelResolverTest.java @@ -127,6 +127,28 @@ public class InlineModelResolverTest { assertNotNull(impl.getProperties().get("address")); } + @Test + public void notResolveNonModelBodyParameter() throws Exception { + Swagger swagger = new Swagger(); + + swagger.path("/hello", new Path() + .get(new Operation() + .parameter(new BodyParameter() + .name("body") + .schema(new ModelImpl() + .type("string") + .format("binary"))))); + + new InlineModelResolver().flatten(swagger); + + Operation operation = swagger.getPaths().get("/hello").getGet(); + BodyParameter bp = (BodyParameter)operation.getParameters().get(0); + assertTrue(bp.getSchema() instanceof ModelImpl); + ModelImpl m = (ModelImpl) bp.getSchema(); + assertEquals("string", m.getType()); + assertEquals("binary", m.getFormat()); + } + @Test public void resolveInlineArrayBodyParameter() throws Exception { Swagger swagger = new Swagger();