diff --git a/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/InlineModelResolver.java b/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/InlineModelResolver.java index 4eb0579a3c..fc8a59ae21 100644 --- a/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/InlineModelResolver.java +++ b/modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/util/InlineModelResolver.java @@ -422,6 +422,8 @@ public Schema modelFromProperty(ArraySchema object, @SuppressWarnings("unused") public Schema modelFromProperty(ObjectSchema object, String path) { String description = object.getDescription(); String example = null; + List requiredList = object.getRequired(); + Object obj = object.getExample(); if (obj != null) { @@ -437,6 +439,7 @@ public Schema modelFromProperty(ObjectSchema object, String path) { model.setName(name); model.setXml(xml); model.setType(object.getType()); + model.setRequired(requiredList); if (properties != null) { flattenProperties(properties, path); diff --git a/modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/InlineModelResolverTest.java b/modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/InlineModelResolverTest.java index bb9d0e7dc6..d9c50f3eb3 100644 --- a/modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/InlineModelResolverTest.java +++ b/modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/util/InlineModelResolverTest.java @@ -2,6 +2,7 @@ +import io.swagger.v3.core.util.Yaml; import io.swagger.v3.oas.models.Components; import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; @@ -32,6 +33,17 @@ @SuppressWarnings("static-method") public class InlineModelResolverTest { + @Test + public void testIssue1018() throws Exception { + ParseOptions options = new ParseOptions(); + options.setFlatten(true); + OpenAPI openAPI = new OpenAPIV3Parser().read("flatten.json",null, options); + + assertNotNull(openAPI); + assertNotNull(openAPI.getComponents().getSchemas().get("ReturnInformation_manufacturer_signin_credentials").getRequired()); + } + + @Test public void testIssue705() throws Exception { ParseOptions options = new ParseOptions(); diff --git a/modules/swagger-parser-v3/src/test/resources/flatten.json b/modules/swagger-parser-v3/src/test/resources/flatten.json index 6b810f8bcc..c048ea57fc 100644 --- a/modules/swagger-parser-v3/src/test/resources/flatten.json +++ b/modules/swagger-parser-v3/src/test/resources/flatten.json @@ -2,6 +2,26 @@ "openapi" : "3.0.1", "components" : { "schemas" : { + "ReturnInformation": { + "type": "object", + "properties": { + "manufacturer_signin_credentials": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": [ + "login", + "password" + ] + } + } + }, "User" : { "required" : [ "address" ], "properties" : {