From 8da349030db700e68a521dddba72684029d6117b Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Thu, 1 Dec 2022 21:12:12 +0000 Subject: [PATCH] Do not generate Content for request parameters in OpenAPI --- src/OpenApi/src/OpenApiGenerator.cs | 20 ++------------------ src/OpenApi/test/OpenApiGeneratorTests.cs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/OpenApi/src/OpenApiGenerator.cs b/src/OpenApi/src/OpenApiGenerator.cs index 393b4684b1bc..47ec9b1d2828 100644 --- a/src/OpenApi/src/OpenApiGenerator.cs +++ b/src/OpenApi/src/OpenApiGenerator.cs @@ -77,7 +77,7 @@ private OpenApiOperation GetOperation(string httpMethod, MethodInfo methodInfo, Summary = metadata.GetMetadata()?.Summary, Description = metadata.GetMetadata()?.Description, Tags = GetOperationTags(methodInfo, metadata), - Parameters = GetOpenApiParameters(methodInfo, metadata, pattern, disableInferredBody), + Parameters = GetOpenApiParameters(methodInfo, pattern, disableInferredBody), RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern), Responses = GetOpenApiResponses(methodInfo, metadata) }; @@ -356,7 +356,7 @@ private List GetOperationTags(MethodInfo methodInfo, EndpointMetadat return new List() { new OpenApiTag() { Name = controllerName } }; } - private List GetOpenApiParameters(MethodInfo methodInfo, EndpointMetadataCollection metadata, RoutePattern pattern, bool disableInferredBody) + private List GetOpenApiParameters(MethodInfo methodInfo, RoutePattern pattern, bool disableInferredBody) { var parameters = PropertyAsParameterInfo.Flatten(methodInfo.GetParameters(), ParameterBindingMethodCache); var openApiParameters = new List(); @@ -384,7 +384,6 @@ private List GetOpenApiParameters(MethodInfo methodInfo, Endpo { Name = name, In = parameterLocation, - Content = GetOpenApiParameterContent(metadata), Required = !isOptional }; @@ -394,21 +393,6 @@ private List GetOpenApiParameters(MethodInfo methodInfo, Endpo return openApiParameters; } - private static Dictionary GetOpenApiParameterContent(EndpointMetadataCollection metadata) - { - var openApiParameterContent = new Dictionary(); - var acceptsMetadata = metadata.GetMetadata(); - if (acceptsMetadata is not null) - { - foreach (var contentType in acceptsMetadata.ContentTypes) - { - openApiParameterContent.Add(contentType, new OpenApiMediaType()); - } - } - - return openApiParameterContent; - } - private (bool isBodyOrForm, ParameterLocation? locatedIn) GetOpenApiParameterLocation(ParameterInfo parameter, RoutePattern pattern, bool disableInferredBody) { var attributes = parameter.GetCustomAttributes(); diff --git a/src/OpenApi/test/OpenApiGeneratorTests.cs b/src/OpenApi/test/OpenApiGeneratorTests.cs index 261f1b6ea28e..12bb68365b56 100644 --- a/src/OpenApi/test/OpenApiGeneratorTests.cs +++ b/src/OpenApi/test/OpenApiGeneratorTests.cs @@ -322,6 +322,7 @@ static void AssertPathParameter(OpenApiOperation operation) { var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Path, param.In); + Assert.Empty(param.Content); } AssertPathParameter(GetOpenApiOperation((int foo) => { }, "/{foo}")); @@ -335,6 +336,7 @@ static void AssertPathParameter(OpenApiOperation operation) { var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Path, param.In); + Assert.Empty(param.Content); } AssertPathParameter(GetOpenApiOperation((TryParseStringRecord foo) => { }, pattern: "/{foo}")); } @@ -346,6 +348,7 @@ static void AssertPathParameter(OpenApiOperation operation) { var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Path, param.In); + Assert.Empty(param.Content); } AssertPathParameter(GetOpenApiOperation((int? foo) => { }, "/{foo}")); @@ -359,6 +362,7 @@ static void AssertPathParameter(OpenApiOperation operation) { var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Path, param.In); + Assert.Empty(param.Content); } AssertPathParameter(GetOpenApiOperation((TryParseStringRecordStruct foo) => { }, pattern: "/{foo}")); } @@ -370,6 +374,7 @@ static void AssertQueryParameter(OpenApiOperation operation, string type) { var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Query, param.In); + Assert.Empty(param.Content); } AssertQueryParameter(GetOpenApiOperation((int foo) => { }, "/"), "integer"); @@ -388,6 +393,7 @@ public void AddsFromHeaderParameterAsHeader() var param = Assert.Single(operation.Parameters); Assert.Equal(ParameterLocation.Header, param.In); + Assert.Empty(param.Content); } [Fact] @@ -430,11 +436,13 @@ public void AddsMultipleParameters() Assert.Equal("foo", fooParam.Name); Assert.Equal(ParameterLocation.Path, fooParam.In); Assert.True(fooParam.Required); + Assert.Empty(fooParam.Content); var barParam = operation.Parameters[1]; Assert.Equal("bar", barParam.Name); Assert.Equal(ParameterLocation.Query, barParam.In); Assert.True(barParam.Required); + Assert.Empty(barParam.Content); var fromBodyParam = operation.RequestBody; var fromBodyContent = Assert.Single(fromBodyParam.Content); @@ -455,12 +463,14 @@ static void AssertParameters(OpenApiOperation operation, string capturedName = " Assert.Equal(capturedName, param.Name); Assert.Equal(ParameterLocation.Path, param.In); Assert.True(param.Required); + Assert.Empty(param.Content); }, param => { Assert.Equal("Bar", param.Name); Assert.Equal(ParameterLocation.Query, param.In); Assert.True(param.Required); + Assert.Empty(param.Content); } ); } @@ -485,11 +495,13 @@ public void TestParameterIsRequired() Assert.Equal("foo", fooParam.Name); Assert.Equal(ParameterLocation.Path, fooParam.In); Assert.True(fooParam.Required); + Assert.Empty(fooParam.Content); var barParam = operation.Parameters[1]; Assert.Equal("bar", barParam.Name); Assert.Equal(ParameterLocation.Query, barParam.In); Assert.False(barParam.Required); + Assert.Empty(barParam.Content); } [Fact]