Промежуточное программное обеспечение терминала (проверка ключа API) не работает с маршрутизацией конечной точки - PullRequest
0 голосов
/ 19 марта 2020

Я реализую API, где на одном указанном c POST-маршруте должна быть проверка ключа API.

SDK выполняет do tnet core 3.1.

Когда я запускаю API, используя Postman, я получаю следующую ошибку:

Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException: запрос соответствует нескольким конечным точкам

Я похож на атрибут маршрута на контроллере API, вместе с регистрацией маршрута конечной точки складываются ...

Как это можно исправить?

public void Configure(IApplicationBuilder app, IHostEnvironment env)
{
    app.UseSerilogRequestLogging();

    if (env.IsDevelopment())
    {
           app.UseDeveloperExceptionPage();
    }

    app.UseSwagger(Configuration);

    app.UseRouting();    

    app.UseEndpoints(endpoints =>
    {
           endpoints.MapApiKeyAuthentication();
           endpoints.MapControllers();
    });
}

(класс расширения)

public static IEndpointRouteBuilder MapApiKeyAuthentication(this IEndpointRouteBuilder endpoints)
{
    endpoints.MapPost("/v1/xyz", endpoints.CreateApplicationBuilder()
           .UseMiddleware<ApiKeyMiddleware>()
           .Build())
           .WithDisplayName("ApiKey");

    return endpoints;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...