diff --git a/src/Microsoft.OpenApi/Extensions/OpenApiTypeMapper.cs b/src/Microsoft.OpenApi/Extensions/OpenApiTypeMapper.cs index 712e7f5c7..b85add3ff 100644 --- a/src/Microsoft.OpenApi/Extensions/OpenApiTypeMapper.cs +++ b/src/Microsoft.OpenApi/Extensions/OpenApiTypeMapper.cs @@ -100,9 +100,11 @@ public static Type MapOpenApiPrimitiveTypeToSimpleType(this OpenApiSchema schema ("boolean", null, false) => typeof(bool), ("integer", "int32", false) => typeof(int), ("integer", "int64", false) => typeof(long), + ("integer", null, false) => typeof(int), ("number", "float", false) => typeof(float), ("number", "double", false) => typeof(double), ("number", "decimal", false) => typeof(decimal), + ("number", null, false) => typeof(double), ("string", "byte", false) => typeof(byte), ("string", "date-time", false) => typeof(DateTimeOffset), ("string", "uuid", false) => typeof(Guid), @@ -113,8 +115,10 @@ public static Type MapOpenApiPrimitiveTypeToSimpleType(this OpenApiSchema schema ("string", "uri", false) => typeof(Uri), ("integer", "int32", true) => typeof(int?), ("integer", "int64", true) => typeof(long?), + ("integer", null, true) => typeof(int?), ("number", "float", true) => typeof(float?), ("number", "double", true) => typeof(double?), + ("number", null, true) => typeof(double?), ("number", "decimal", true) => typeof(decimal?), ("string", "byte", true) => typeof(byte?), ("string", "date-time", true) => typeof(DateTimeOffset?), diff --git a/test/Microsoft.OpenApi.Tests/Extensions/OpenApiTypeMapperTests.cs b/test/Microsoft.OpenApi.Tests/Extensions/OpenApiTypeMapperTests.cs index a0fcb133a..ee6d6e658 100644 --- a/test/Microsoft.OpenApi.Tests/Extensions/OpenApiTypeMapperTests.cs +++ b/test/Microsoft.OpenApi.Tests/Extensions/OpenApiTypeMapperTests.cs @@ -24,6 +24,8 @@ public class OpenApiTypeMapperTests public static IEnumerable OpenApiDataTypes => new List { new object[] { new OpenApiSchema { Type = "integer", Format = "int32"}, typeof(int) }, + new object[] { new OpenApiSchema { Type = "integer", Format = null, Nullable = false}, typeof(int) }, + new object[] { new OpenApiSchema { Type = "integer", Format = null, Nullable = true}, typeof(int?) }, new object[] { new OpenApiSchema { Type = "string" }, typeof(string) }, new object[] { new OpenApiSchema { Type = "number", Format = "double" }, typeof(double) }, new object[] { new OpenApiSchema { Type = "number", Format = "float", Nullable = true }, typeof(float?) },