Операции не определены в спецификации! Swashbuckle.AspNetCore

Возникла ошибка "Нет операций" после переноса моего API-проекта с dotnet core 1.1 на 2.0, а также обновленного Swashbuckle.AspNetCore до последней версии 3.0. База Code имеет контроллеры, которые наследуются от BaseControllers. Код работает нормально в проекте asp.net core 1.1 без каких-либо проблем.

В приложении asp.net core 2.0, при запуске конечной точки / swagger я получаю сообщение об ошибке No operations defined in spec!

Startup.cs

 options.DocInclusionPredicate((docName, apiDesc) =>
                    {
                        if (!apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)) return false;

                        var versions = apiDesc.ControllerAttributes()
                           .OfType<ApiVersionAttribute>()
                           .SelectMany(attr => attr.Versions);

                        Console.WriteLine("versions " + JsonConvert.SerializeObject(versions));
                        Console.WriteLine("docName " + docName);
                        Console.WriteLine("relPath " + apiDesc.RelativePath.ToLower());
                        return versions.Any(v => $"v{v.ToString()}" == docName || $"p{v.ToString()}" == docName || $"a{v.ToString()}" == docName);

                    });

Настройка ()

 app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "V1 Docs");
                c.SwaggerEndpoint("/swagger/p1.1/swagger.json", "P1.1 Docs");

                c.OAuthClientId("swagger.ui");
                c.OAuthClientSecret("swagger.ui_secret");
                c.OAuthRealm("Company Nucleus Swagger");
                c.OAuthAppName("Company Nucleus Swagger");
                //c.OAuth2RedirectUrl("http://localhost:5001/swagger/o2c.html");

                c.OAuthScopeSeparator(" ");
                c.OAuthAdditionalQueryStringParams(new { foo = "bar" });
                c.OAuthUseBasicAuthenticationWithAccessCodeGrant();


            });

При запуске http://localhost:5001/swagger/P1.1/swagger.json объект путей и определений кажется пустым. Пожалуйста, дайте мне знать, как это исправить.

0 ответов

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