我创建了一个全新的Asp.net Core 2.2 Web API应用程序。
然后我按照以下步骤配置Swagger。
在启动文件的ConfigureServices方法中,我有以下内容。
在Configure方法中,接下来我有:
到目前为止还不错。Swagger UI 工作得很好。 当我引入一个简单的 MVC 控制器时,问题开始出现。
我得到了以下错误:
无法加载API定义,错误信息为:获取错误,内部服务器错误/swagger/v1/swagger.json。
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 不支持 Asp.net Core MVC 控制器。如果我注释掉该 MVC 控制器,一切都可以正常工作。
有没有解决方法。