From 7b1321791a61bf322a83054ec4fe7f646a537254 Mon Sep 17 00:00:00 2001 From: Safia Abdalla Date: Tue, 11 Apr 2023 19:19:01 -0700 Subject: [PATCH] Don't generate RequestBody for parameters when disabledInferredBody is true (#47659) --- src/OpenApi/src/OpenApiGenerator.cs | 6 +++--- src/OpenApi/test/OpenApiGeneratorTests.cs | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/OpenApi/src/OpenApiGenerator.cs b/src/OpenApi/src/OpenApiGenerator.cs index 86e7e46720ac..0274b7a26cb8 100644 --- a/src/OpenApi/src/OpenApiGenerator.cs +++ b/src/OpenApi/src/OpenApiGenerator.cs @@ -78,7 +78,7 @@ private OpenApiOperation GetOperation(string httpMethod, MethodInfo methodInfo, Description = metadata.GetMetadata()?.Description, Tags = GetOperationTags(methodInfo, metadata), Parameters = GetOpenApiParameters(methodInfo, pattern, disableInferredBody), - RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern), + RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern, disableInferredBody), Responses = GetOpenApiResponses(methodInfo, metadata) }; @@ -251,7 +251,7 @@ private static void GenerateDefaultResponses(Dictionary ""), "headerName"); } + [Fact] + public void DoesNotGenerateRequestBodyWhenInferredBodyDisabled() + { + var operation = GetOpenApiOperation((string[] names) => { }, httpMethods: new[] { "GET" }); + + var parameter = Assert.Single(operation.Parameters); + + Assert.Equal("names", parameter.Name); + Assert.Equal(ParameterLocation.Query, parameter.In); + Assert.Null(operation.RequestBody); + } + private static OpenApiOperation GetOpenApiOperation( Delegate action, string pattern = null,