diff --git a/src/Core/Services/OpenAPI/JsonDataType.cs b/src/Core/Services/OpenAPI/JsonDataType.cs index f8decd0317..9487929261 100644 --- a/src/Core/Services/OpenAPI/JsonDataType.cs +++ b/src/Core/Services/OpenAPI/JsonDataType.cs @@ -35,6 +35,10 @@ public enum JsonDataType /// Boolean = 5, /// + /// A JSON integer (subset of number without a fraction or exponent part) + /// + Integer = 7, + /// /// The JSON value null /// Null = 6 diff --git a/src/Core/Services/TypeHelper.cs b/src/Core/Services/TypeHelper.cs index 40d940c807..285e165669 100644 --- a/src/Core/Services/TypeHelper.cs +++ b/src/Core/Services/TypeHelper.cs @@ -57,14 +57,14 @@ public static class TypeHelper /// private static Dictionary _systemTypeToJsonDataTypeMap = new() { - [typeof(byte)] = JsonDataType.String, - [typeof(sbyte)] = JsonDataType.String, - [typeof(short)] = JsonDataType.Number, - [typeof(ushort)] = JsonDataType.Number, - [typeof(int)] = JsonDataType.Number, - [typeof(uint)] = JsonDataType.Number, - [typeof(long)] = JsonDataType.Number, - [typeof(ulong)] = JsonDataType.Number, + [typeof(byte)] = JsonDataType.Integer, + [typeof(sbyte)] = JsonDataType.Integer, + [typeof(short)] = JsonDataType.Integer, + [typeof(ushort)] = JsonDataType.Integer, + [typeof(int)] = JsonDataType.Integer, + [typeof(uint)] = JsonDataType.Integer, + [typeof(long)] = JsonDataType.Integer, + [typeof(ulong)] = JsonDataType.Integer, [typeof(float)] = JsonDataType.Number, [typeof(double)] = JsonDataType.Number, [typeof(decimal)] = JsonDataType.Number, diff --git a/src/Service.Tests/OpenApiDocumentor/ParameterValidationTests.cs b/src/Service.Tests/OpenApiDocumentor/ParameterValidationTests.cs index 5caed5a6b9..551a7b0132 100644 --- a/src/Service.Tests/OpenApiDocumentor/ParameterValidationTests.cs +++ b/src/Service.Tests/OpenApiDocumentor/ParameterValidationTests.cs @@ -182,7 +182,7 @@ public async Task TestInputParametersForStoredProcedures() Assert.IsTrue(operation.Parameters.Any(param => param.In is ParameterLocation.Query && param.Name.Equals("id") - && param.Schema.Type.Equals("number") + && param.Schema.Type.Equals("integer") && param.Required is false)); // Parameter with default value will be an optional query parameter. diff --git a/src/Service.Tests/OpenApiDocumentor/StoredProcedureGeneration.cs b/src/Service.Tests/OpenApiDocumentor/StoredProcedureGeneration.cs index ffd5aaadde..c22ddddc2c 100644 --- a/src/Service.Tests/OpenApiDocumentor/StoredProcedureGeneration.cs +++ b/src/Service.Tests/OpenApiDocumentor/StoredProcedureGeneration.cs @@ -111,7 +111,7 @@ public void ValidateRequestBodyContents(string entityName, string[] expectedPara /// Entity to test, requires updating the CreateEntities() helper. /// Expected first result set columns /// Expected first result set column types (JSON) - [DataRow("sp1", new string[] { "id", "title", "publisher_id" }, new string[] { "number", "string", "number" }, DisplayName = "Validate response body parameters and parameter Json data types.")] + [DataRow("sp1", new string[] { "id", "title", "publisher_id" }, new string[] { "integer", "string", "integer" }, DisplayName = "Validate response body parameters and parameter Json data types.")] [DataTestMethod] public void ValidateResponseBodyContents(string entityName, string[] expectedColumns, string[] expectedColumnJsonTypes) {