From 76cfc303bc7badcc6cee1cc38fc81030a75b950e Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 22 Nov 2021 14:30:18 -0500 Subject: [PATCH] - switches to a referenced schema for count operations Signed-off-by: Vincent Biret --- src/Microsoft.OpenApi.OData.Reader/Common/Constants.cs | 4 ++++ .../Generator/OpenApiSchemaGenerator.cs | 5 +++++ .../Operation/DollarCountGetOperationHandler.cs | 10 ++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/Microsoft.OpenApi.OData.Reader/Common/Constants.cs b/src/Microsoft.OpenApi.OData.Reader/Common/Constants.cs index d332dbe..f25052d 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Common/Constants.cs +++ b/src/Microsoft.OpenApi.OData.Reader/Common/Constants.cs @@ -79,5 +79,9 @@ namespace Microsoft.OpenApi.OData.Common /// extension for discriminator value support /// public static string xMsDiscriminatorValue = "x-ms-discriminator-value"; + /// + /// Name used for the OpenAPI referenced schema for OData Count operations responses. + /// + public static string DollarCountSchemaName = "ODataCountResponse"; } } diff --git a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs index c989b15..158bfd3 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs +++ b/src/Microsoft.OpenApi.OData.Reader/Generator/OpenApiSchemaGenerator.cs @@ -67,6 +67,11 @@ namespace Microsoft.OpenApi.OData.Generator schemas[schema.Key] = schema.Value; } + schemas[Constants.DollarCountSchemaName] = new OpenApiSchema { + Type = "integer", + Format = "int32" + }; + return schemas; } diff --git a/src/Microsoft.OpenApi.OData.Reader/Operation/DollarCountGetOperationHandler.cs b/src/Microsoft.OpenApi.OData.Reader/Operation/DollarCountGetOperationHandler.cs index 62673b0..fdf1082 100644 --- a/src/Microsoft.OpenApi.OData.Reader/Operation/DollarCountGetOperationHandler.cs +++ b/src/Microsoft.OpenApi.OData.Reader/Operation/DollarCountGetOperationHandler.cs @@ -54,10 +54,12 @@ namespace Microsoft.OpenApi.OData.Operation /// protected override void SetResponses(OpenApiOperation operation) { - OpenApiSchema schema = new OpenApiSchema - { - Type = "integer", - Format = "int32" + OpenApiSchema schema = new() + { + Reference = new() { + Type = ReferenceType.Schema, + Id = Constants.DollarCountSchemaName + } }; operation.Responses = new OpenApiResponses