in src/Microsoft.OpenApi.OData.Reader/Operation/RefGetOperationHandler.cs [66:128]
protected override void SetResponses(OpenApiOperation operation)
{
if (NavigationProperty.TargetMultiplicity() == EdmMultiplicity.Many)
{
operation.Responses = new OpenApiResponses
{
{
Constants.StatusCode200,
new OpenApiResponse
{
Reference = new OpenApiReference
{
Type = ReferenceType.Response,
Id = $"String{Constants.CollectionSchemaSuffix}"
},
}
}
};
}
else
{
OpenApiSchema schema = new()
{
// $ref returns string for the Uri?
Type = "string"
};
IDictionary<string, OpenApiLink> links = null;
if (Context.Settings.ShowLinks)
{
string operationId = GetOperationId();
links = Context.CreateLinks(entityType: NavigationProperty.ToEntityType(), entityName: NavigationProperty.Name,
entityKind: NavigationProperty.PropertyKind.ToString(), parameters: operation.Parameters,
navPropOperationId: operationId);
}
operation.Responses = new OpenApiResponses
{
{
Constants.StatusCode200,
new OpenApiResponse
{
Description = "Retrieved navigation property link",
Content = new Dictionary<string, OpenApiMediaType>
{
{
Constants.ApplicationJsonMediaType,
new OpenApiMediaType
{
Schema = schema
}
}
},
Links = links
}
}
};
}
operation.Responses.Add(Constants.StatusCodeDefault, Constants.StatusCodeDefault.GetResponse());
base.SetResponses(operation);
}