Swagger API ломается, когда для атрибута Route установлено значение Controller Action - ASP. NET Core - PullRequest
0 голосов
/ 17 марта 2020

Я использую ASP. NET Core 3.1. В моем веб-приложении я интегрировал чванство. Что работает хорошо, показывает конечные точки правильно в документации API Swagger. Код при запуске выглядит следующим образом:

public void ConfigureServices(IServiceCollection services)
{
            services.AddSwaggerGen( c => {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
            });
}

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Clients}/{action=Index}/{id?}");
            });

            app.UseSwagger();
            app.UseSwaggerUI(c => {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Push Notification API V1");
            });

         }

В моем контроллере ошибок я просто добавил метод HttpStatusCodeHandler и дал маршрут, как показано ниже. Тогда чванство выдает ошибку как:

«Не удалось загрузить определение API». Ошибка выборки не определена Swagger API работает отлично. В чем может быть ошибка в этом?

1 Ответ

0 голосов
/ 18 марта 2020

Я удалил [Route("Error/Error/{statusCode}")] из метода и включил промежуточное программное обеспечение app.UseStatusCodePagesWithRedirects() в метод настройки.

Я не уверен в точной причине ошибки API сваггера.

...