Skip to content

Commit dc60cb8

Browse files
authored
Do not generate Content for request parameters in OpenAPI (#45404)
1 parent 87c8b78 commit dc60cb8

File tree

2 files changed

+14
-18
lines changed

2 files changed

+14
-18
lines changed

src/OpenApi/src/OpenApiGenerator.cs

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ private OpenApiOperation GetOperation(string httpMethod, MethodInfo methodInfo,
7777
Summary = metadata.GetMetadata<IEndpointSummaryMetadata>()?.Summary,
7878
Description = metadata.GetMetadata<IEndpointDescriptionMetadata>()?.Description,
7979
Tags = GetOperationTags(methodInfo, metadata),
80-
Parameters = GetOpenApiParameters(methodInfo, metadata, pattern, disableInferredBody),
80+
Parameters = GetOpenApiParameters(methodInfo, pattern, disableInferredBody),
8181
RequestBody = GetOpenApiRequestBody(methodInfo, metadata, pattern),
8282
Responses = GetOpenApiResponses(methodInfo, metadata)
8383
};
@@ -356,7 +356,7 @@ private List<OpenApiTag> GetOperationTags(MethodInfo methodInfo, EndpointMetadat
356356
return new List<OpenApiTag>() { new OpenApiTag() { Name = controllerName } };
357357
}
358358

359-
private List<OpenApiParameter> GetOpenApiParameters(MethodInfo methodInfo, EndpointMetadataCollection metadata, RoutePattern pattern, bool disableInferredBody)
359+
private List<OpenApiParameter> GetOpenApiParameters(MethodInfo methodInfo, RoutePattern pattern, bool disableInferredBody)
360360
{
361361
var parameters = PropertyAsParameterInfo.Flatten(methodInfo.GetParameters(), ParameterBindingMethodCache);
362362
var openApiParameters = new List<OpenApiParameter>();
@@ -384,7 +384,6 @@ private List<OpenApiParameter> GetOpenApiParameters(MethodInfo methodInfo, Endpo
384384
{
385385
Name = name,
386386
In = parameterLocation,
387-
Content = GetOpenApiParameterContent(metadata),
388387
Required = !isOptional
389388

390389
};
@@ -394,21 +393,6 @@ private List<OpenApiParameter> GetOpenApiParameters(MethodInfo methodInfo, Endpo
394393
return openApiParameters;
395394
}
396395

397-
private static Dictionary<string, OpenApiMediaType> GetOpenApiParameterContent(EndpointMetadataCollection metadata)
398-
{
399-
var openApiParameterContent = new Dictionary<string, OpenApiMediaType>();
400-
var acceptsMetadata = metadata.GetMetadata<IAcceptsMetadata>();
401-
if (acceptsMetadata is not null)
402-
{
403-
foreach (var contentType in acceptsMetadata.ContentTypes)
404-
{
405-
openApiParameterContent.Add(contentType, new OpenApiMediaType());
406-
}
407-
}
408-
409-
return openApiParameterContent;
410-
}
411-
412396
private (bool isBodyOrForm, ParameterLocation? locatedIn) GetOpenApiParameterLocation(ParameterInfo parameter, RoutePattern pattern, bool disableInferredBody)
413397
{
414398
var attributes = parameter.GetCustomAttributes();

src/OpenApi/test/OpenApiGeneratorTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ static void AssertPathParameter(OpenApiOperation operation)
322322
{
323323
var param = Assert.Single(operation.Parameters);
324324
Assert.Equal(ParameterLocation.Path, param.In);
325+
Assert.Empty(param.Content);
325326
}
326327

327328
AssertPathParameter(GetOpenApiOperation((int foo) => { }, "/{foo}"));
@@ -335,6 +336,7 @@ static void AssertPathParameter(OpenApiOperation operation)
335336
{
336337
var param = Assert.Single(operation.Parameters);
337338
Assert.Equal(ParameterLocation.Path, param.In);
339+
Assert.Empty(param.Content);
338340
}
339341
AssertPathParameter(GetOpenApiOperation((TryParseStringRecord foo) => { }, pattern: "/{foo}"));
340342
}
@@ -346,6 +348,7 @@ static void AssertPathParameter(OpenApiOperation operation)
346348
{
347349
var param = Assert.Single(operation.Parameters);
348350
Assert.Equal(ParameterLocation.Path, param.In);
351+
Assert.Empty(param.Content);
349352
}
350353

351354
AssertPathParameter(GetOpenApiOperation((int? foo) => { }, "/{foo}"));
@@ -359,6 +362,7 @@ static void AssertPathParameter(OpenApiOperation operation)
359362
{
360363
var param = Assert.Single(operation.Parameters);
361364
Assert.Equal(ParameterLocation.Path, param.In);
365+
Assert.Empty(param.Content);
362366
}
363367
AssertPathParameter(GetOpenApiOperation((TryParseStringRecordStruct foo) => { }, pattern: "/{foo}"));
364368
}
@@ -370,6 +374,7 @@ static void AssertQueryParameter(OpenApiOperation operation, string type)
370374
{
371375
var param = Assert.Single(operation.Parameters);
372376
Assert.Equal(ParameterLocation.Query, param.In);
377+
Assert.Empty(param.Content);
373378
}
374379

375380
AssertQueryParameter(GetOpenApiOperation((int foo) => { }, "/"), "integer");
@@ -388,6 +393,7 @@ public void AddsFromHeaderParameterAsHeader()
388393
var param = Assert.Single(operation.Parameters);
389394

390395
Assert.Equal(ParameterLocation.Header, param.In);
396+
Assert.Empty(param.Content);
391397
}
392398

393399
[Fact]
@@ -430,11 +436,13 @@ public void AddsMultipleParameters()
430436
Assert.Equal("foo", fooParam.Name);
431437
Assert.Equal(ParameterLocation.Path, fooParam.In);
432438
Assert.True(fooParam.Required);
439+
Assert.Empty(fooParam.Content);
433440

434441
var barParam = operation.Parameters[1];
435442
Assert.Equal("bar", barParam.Name);
436443
Assert.Equal(ParameterLocation.Query, barParam.In);
437444
Assert.True(barParam.Required);
445+
Assert.Empty(barParam.Content);
438446

439447
var fromBodyParam = operation.RequestBody;
440448
var fromBodyContent = Assert.Single(fromBodyParam.Content);
@@ -455,12 +463,14 @@ static void AssertParameters(OpenApiOperation operation, string capturedName = "
455463
Assert.Equal(capturedName, param.Name);
456464
Assert.Equal(ParameterLocation.Path, param.In);
457465
Assert.True(param.Required);
466+
Assert.Empty(param.Content);
458467
},
459468
param =>
460469
{
461470
Assert.Equal("Bar", param.Name);
462471
Assert.Equal(ParameterLocation.Query, param.In);
463472
Assert.True(param.Required);
473+
Assert.Empty(param.Content);
464474
}
465475
);
466476
}
@@ -485,11 +495,13 @@ public void TestParameterIsRequired()
485495
Assert.Equal("foo", fooParam.Name);
486496
Assert.Equal(ParameterLocation.Path, fooParam.In);
487497
Assert.True(fooParam.Required);
498+
Assert.Empty(fooParam.Content);
488499

489500
var barParam = operation.Parameters[1];
490501
Assert.Equal("bar", barParam.Name);
491502
Assert.Equal(ParameterLocation.Query, barParam.In);
492503
Assert.False(barParam.Required);
504+
Assert.Empty(barParam.Content);
493505
}
494506

495507
[Fact]

0 commit comments

Comments
 (0)