Я создал новое веб-приложение Asp.net Core 2.2.Затем я настроил Swagger следующим образом.В методе ConfigureServices файла запуска у меня есть следующее:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Title = "My API", Version = "v1"
});
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
Далее в методе Configure у меня есть
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseHsts();
app.UseSwagger();
app.UseHttpsRedirection();
app.UseMvc();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = string.Empty;
});
Пока все хорошо.Swagger UI работает потрясающе.Проблемы начались, когда я представил простой контроллер MVC.
[Route("[controller]/[action]")]
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
}
Я получаю следующую ошибку
Не удалось загрузить определение API. Ошибки Ошибка выборки Внутренняя ошибка сервера /swagger/v1/swagger.json
Похоже, Swagger не принимает основной контроллер MVC Asp.net.Если я прокомментирую тот контроллер mvc, все снова будет работать нормально.
Есть ли выход из этого.