Skip to content

Commit c136516

Browse files
committed
ensure path parameters are available in the OpenApi links
1 parent 637f66a commit c136516

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
@@ -111,7 +111,7 @@ protected override void SetResponses(OpenApiOperation operation)
111111
string operationId = GetOperationId();
112112

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

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
@@ -95,7 +95,7 @@ protected override void SetResponses(OpenApiOperation operation)
9595
string operationId = GetOperationId();
9696

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

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)