Минимальный API .NET 8 — поиск конечных точек с помощью NSwag, использующих AddEndpointFilter

В настоящее время я использую 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;
    }
}

Я попытался добавить метаданные конечной точки и отфильтровать их, это в некоторой степени работает, но добавляет дополнительные строки для конечной точки, которая может иметь несколько фильтров конечных точек, поэтому это может быть довольно беспорядочно.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
131
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Таким образом, тип контекста по умолчанию OperationProcessorContext не включает описание API по умолчанию, но вы можете объявить его как AspNetCoreOperationProcessorContext, который содержит метаданные - например.

            var metadata = ((AspNetCoreOperationProcessorContext)context).ApiDescription.ActionDescriptor.EndpointMetadata.Select(m => m.ToString());

Другие вопросы по теме