Skip to content

Commit b171a2d

Browse files
committed
ensure path parameters are available in the OpenApi links
1 parent e31532b commit b171a2d

File tree

5 files changed

+11
-5
lines changed

5 files changed

+11
-5
lines changed

src/Microsoft.OpenApi.OData.Reader/Operation/EntityGetOperationHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ protected override void SetResponses(OpenApiOperation operation)
7777
if (Context.Settings.ShowLinks)
7878
{
7979
links = Context.CreateLinks(entityType: EntitySet.EntityType(), entityName: EntitySet.Name,
80-
entityKind: EntitySet.ContainerElementKind.ToString(), parameters: operation.Parameters);
80+
entityKind: EntitySet.ContainerElementKind.ToString(), PathParameters);
8181
}
8282

8383
if (schema == null)

src/Microsoft.OpenApi.OData.Reader/Operation/NavigationPropertyGetOperationHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ protected override void SetResponses(OpenApiOperation operation)
113113
string operationId = GetOperationId();
114114

115115
links = Context.CreateLinks(entityType: NavigationProperty.ToEntityType(), entityName: NavigationProperty.Name,
116-
entityKind: NavigationProperty.PropertyKind.ToString(), parameters: operation.Parameters,
116+
entityKind: NavigationProperty.PropertyKind.ToString(), parameters: PathParameters,
117117
navPropOperationId: operationId);
118118
}
119119

src/Microsoft.OpenApi.OData.Reader/Operation/OperationHandler.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ internal abstract class OperationHandler : IOperationHandler
2525

2626
protected IDictionary<ODataSegment, IDictionary<string, string>> ParameterMappings;
2727

28+
/// <summary>
29+
/// The path parameters in the path
30+
/// </summary>
31+
protected IList<OpenApiParameter> PathParameters;
32+
2833
/// <inheritdoc/>
2934
public virtual OpenApiOperation CreateOperation(ODataContext context, ODataPath path)
3035
{
@@ -139,9 +144,10 @@ protected virtual void SetRequestBody(OpenApiOperation operation)
139144
/// <param name="operation">The <see cref="OpenApiOperation"/>.</param>
140145
protected virtual void SetParameters(OpenApiOperation operation)
141146
{
147+
PathParameters = Path.CreatePathParameters(Context);
142148
if (!Context.Settings.DeclarePathParametersOnPathItem)
143149
{
144-
foreach(var parameter in Path.CreatePathParameters(Context))
150+
foreach (var parameter in PathParameters)
145151
{
146152
operation.Parameters.AppendParameter(parameter);
147153
}

src/Microsoft.OpenApi.OData.Reader/Operation/RefGetOperationHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ protected override void SetResponses(OpenApiOperation operation)
9696
string operationId = GetOperationId();
9797

9898
links = Context.CreateLinks(entityType: NavigationProperty.ToEntityType(), entityName: NavigationProperty.Name,
99-
entityKind: NavigationProperty.PropertyKind.ToString(), parameters: operation.Parameters,
99+
entityKind: NavigationProperty.PropertyKind.ToString(), parameters: PathParameters,
100100
navPropOperationId: operationId);
101101
}
102102

src/Microsoft.OpenApi.OData.Reader/Operation/SingletonGetOperationHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ protected override void SetResponses(OpenApiOperation operation)
7474
if (Context.Settings.ShowLinks)
7575
{
7676
links = Context.CreateLinks(entityType: Singleton.EntityType(), entityName: Singleton.Name,
77-
entityKind: Singleton.ContainerElementKind.ToString(), parameters: operation.Parameters);
77+
entityKind: Singleton.ContainerElementKind.ToString(), parameters: PathParameters);
7878
}
7979

8080
if (schema == null)

0 commit comments

Comments
 (0)