В настоящее время я использую AddEndpointFilter для своей конечной точки, используя MinimalAPI.
app.MapGet("/{Id}", Method).AddEndpointFilter<HeaderFilter>()
Используя OperationProcessor NSwag, я хочу иметь возможность получать каждый EndpointFilter, используемый в конечной точке. Есть ли путь в контексте, который я могу использовать? В настоящее время я изо всех сил пытаюсь найти какой-либо способ сделать это.
public class HeaderOperationProcessor : IOperationProcessor
{
public bool Process(OperationProcessorContext context)
{
// filter need to go here
var header = new OpenApiParameter()
{
Name = "CustomHeader",
Kind = OpenApiParameterKind.Header,
IsRequired = true,
Type = JsonObjectType.String
};
context.OperationDescription.Operation.Parameters.Add(header);
return true;
}
}
Я попытался добавить метаданные конечной точки и отфильтровать их, это в некоторой степени работает, но добавляет дополнительные строки для конечной точки, которая может иметь несколько фильтров конечных точек, поэтому это может быть довольно беспорядочно.





Таким образом, тип контекста по умолчанию OperationProcessorContext не включает описание API по умолчанию, но вы можете объявить его как AspNetCoreOperationProcessorContext, который содержит метаданные - например.
var metadata = ((AspNetCoreOperationProcessorContext)context).ApiDescription.ActionDescriptor.EndpointMetadata.Select(m => m.ToString());