出现这个问题的原因是Swagger的配置可能不完整或不正确。为了解决这个问题,可以按照以下步骤:
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); });
app.UseSwagger();
//启用SwaggerUI中间件 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); });
确保访问/swagger可以看到Swagger UI并且访问/swagger/v1/swagger.json可以看到Swagger JSON。
安装Swagger生成器(Swashbuckle.AspNetCore)NuGet包,启用中间件并创建Swagger端点的代码示例如下:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.OpenApi.Models;
namespace MyProject { public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
}
}
}
通过以上步骤,可以成功启用AspNetCore Swagger并且JSON和UI返回终点404错误的问题也能得到解决。
上一篇:ASPNETCoreSQLServerDocker-Compose入口bash脚本在日志中显示错误
下一篇:Aspnetcoretolisttheauthor'sbooksonthepage(如何使用Aspnetcore实现在网页上列出作者的书籍)