我尝试让dotnet 6 Weather API示例生成静态swagger.json或swagger. yaml。
我很肯定我已经按照微软文档的步骤,但没有静态文件正在生成,我希望他们出现在建设。
Microsoft文档URL:
https://learn.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-6.0&tabs=visual-studio
我的program.cs
中的代码:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
app.UseSwagger();
app.UseSwaggerUI();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseAuthorization();
app.MapDefaultControllerRoute();
app.MapRazorPages();
app.Run();
我正在通过visual studio 2022以及dotnet run
运行/构建应用程序
2条答案
按热度按时间li9yvcax1#
修改你的
.csproj
文件,如下所示。e4yzc0pl2#
对于没有任何控制器或API的ASP.NET核心Web应用程序项目,swashbuckle将不会生成swagger文档。
所以它的一点点取决于你想实现什么。
如果您希望在构建时生成不带API的swagger文档,那么https://stackoverflow.com/a/72654660/9247039解决方案是最适合您的解决方案。
但如果您希望在运行时生成swagger文档,则必须添加一些控制器或API来生成它,并且不需要更改任何项目设置。
因此,通过对示例进行简单的修改,我就能够生成swagger.json。当然,我必须将swagger的内容放在这个块之外
在应用程序MapRazorPages()之后;添加这些行并运行应用程序。
然后进入你的招摇页面
你可以在swaggerui中看到你的api。