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)
{