Операции не определены в спецификации! 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 объект путей и определений кажется пустым. Пожалуйста, дайте мне знать, как это исправить.