Swagger 不工作 Asp.net Core 如何打开 swagger ui
Swagger is not Working Asp.net Core how to open swagger ui
这是我的 Startup.cs
文件
这是我在 Startup.cs 中的 ConfigureService
方法。我完全按照文档修改了它,但它不起作用。我已经删除了启动 Url,所以它只是在端口上运行,我没有设置任何路由。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddControllers();
services.ConnectionToACQEs(Configuration);
services.AddAutoMapper(typeof(Startup));
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "ToDo API",
Description = "A simple example ASP.NET Core Web API",
TermsOfService = new Uri("https://example.com/terms"),
Contact = new OpenApiContact
{
Name = "Nicky Liu",
Email = "nicky@zedotech.com",
Url = new Uri("https://www.zedotech.com"),
},
License = new OpenApiLicense
{
Name = "Use under LICX",
Url = new Uri("https://example.com/license"),
}
});
});
}
这是我的Configure
方法:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}
/// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
//app.UseHttpsRedirection();
app.UseRouting();
//app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "";
});
右键单击您的项目,然后 select 在左侧面板和启动浏览器(绝对或相对 URL)上进行调试,将其留空。
尝试清理您的构建并构建您的项目。
如果还是不行,请确保您的控制器没有没有 ActionVerbs 的方法,即:HttpGet, HttpPost
等等。 Swagger 要求所有控制器方法都具有 ActionVerbs,具有 [ApiExplorerSettings(IgnoreApi = true)]
属性的方法除外。
None 你的方法应该定义路由和 ActionVerb:
执行 [HttpGet,Route("getuser")]
而不是 [HttpGet("getuser")]
这是我的 Startup.cs
文件
这是我在 Startup.cs 中的 ConfigureService
方法。我完全按照文档修改了它,但它不起作用。我已经删除了启动 Url,所以它只是在端口上运行,我没有设置任何路由。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddControllers();
services.ConnectionToACQEs(Configuration);
services.AddAutoMapper(typeof(Startup));
// Register the Swagger generator, defining 1 or more Swagger documents
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "ToDo API",
Description = "A simple example ASP.NET Core Web API",
TermsOfService = new Uri("https://example.com/terms"),
Contact = new OpenApiContact
{
Name = "Nicky Liu",
Email = "nicky@zedotech.com",
Url = new Uri("https://www.zedotech.com"),
},
License = new OpenApiLicense
{
Name = "Use under LICX",
Url = new Uri("https://example.com/license"),
}
});
});
}
这是我的Configure
方法:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}
/// Enable middleware to serve generated Swagger as a JSON endpoint.
app.UseSwagger();
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
//app.UseHttpsRedirection();
app.UseRouting();
//app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "";
});
右键单击您的项目,然后 select 在左侧面板和启动浏览器(绝对或相对 URL)上进行调试,将其留空。
尝试清理您的构建并构建您的项目。
如果还是不行,请确保您的控制器没有没有 ActionVerbs 的方法,即:HttpGet, HttpPost
等等。 Swagger 要求所有控制器方法都具有 ActionVerbs,具有 [ApiExplorerSettings(IgnoreApi = true)]
属性的方法除外。
None 你的方法应该定义路由和 ActionVerb:
执行 [HttpGet,Route("getuser")]
而不是 [HttpGet("getuser")]