Skip to content

Commit 06ff899

Browse files
authored
Don't generate RequestBody for parameters when disabledInferredBody is true (#47659)
1 parent 0f65d69 commit 06ff899

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/OpenApi/src/OpenApiGenerator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ private OpenApiOperation GetOperation(string httpMethod, MethodInfo methodInfo,
7878
Description = metadata.GetMetadata<IEndpointDescriptionMetadata>()?.Description,
7979
Tags = GetOperationTags(methodInfo, metadata),
8080
Parameters = GetOpenApiParameters(methodInfo, pattern, disableInferredBody),
81-
RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern),
81+
RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern, disableInferredBody),
8282
Responses = GetOpenApiResponses(methodInfo, metadata)
8383
};
8484

@@ -251,15 +251,15 @@ private static void GenerateDefaultResponses(Dictionary<int, (Type?, MediaTypeCo
251251
}
252252
}
253253

254-
private OpenApiRequestBody? GetOpenApiRequestBody(MethodInfo methodInfo, EndpointMetadataCollection metadata, RoutePattern pattern)
254+
private OpenApiRequestBody? GetOpenApiRequestBody(MethodInfo methodInfo, EndpointMetadataCollection metadata, RoutePattern pattern, bool disableInferredBody)
255255
{
256256
var hasFormOrBodyParameter = false;
257257
ParameterInfo? requestBodyParameter = null;
258258

259259
var parameters = PropertyAsParameterInfo.Flatten(methodInfo.GetParameters(), ParameterBindingMethodCache);
260260
foreach (var parameter in parameters)
261261
{
262-
var (bodyOrFormParameter, _, _) = GetOpenApiParameterLocation(parameter, pattern, false);
262+
var (bodyOrFormParameter, _, _) = GetOpenApiParameterLocation(parameter, pattern, disableInferredBody);
263263
hasFormOrBodyParameter |= bodyOrFormParameter;
264264
if (hasFormOrBodyParameter)
265265
{

src/OpenApi/test/OpenApiGeneratorTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -968,6 +968,18 @@ public void SupportsRequiredMembersInAsParametersObliviousContextAttribute()
968968
param => Assert.False(param.Required));
969969
}
970970

971+
[Fact]
972+
public void DoesNotGenerateRequestBodyWhenInferredBodyDisabled()
973+
{
974+
var operation = GetOpenApiOperation((string[] names) => { }, httpMethods: new[] { "GET" });
975+
976+
var parameter = Assert.Single(operation.Parameters);
977+
978+
Assert.Equal("names", parameter.Name);
979+
Assert.Equal(ParameterLocation.Query, parameter.In);
980+
Assert.Null(operation.RequestBody);
981+
}
982+
971983
private static OpenApiOperation GetOpenApiOperation(
972984
Delegate action,
973985
string pattern = null,

0 commit comments

Comments
 (0)