问题描述
我正在尝试熟悉 .NET 5 as documented here 的 NSwag 用法。阅读后,我觉得这个文档已经过时了,因为它提到了 UseMvc
和 AddMvc
等方法,这些方法对于 .NET Core 2.1 来说是典型的,但对于 .NET 5 来说不是。无论如何,这是我的配置方法(我操作了 Visual Studio 2019 自动生成的标准 .NET 5 Web Api 项目):
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerDocument();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
app.USEOpenApi();
app.UseSwaggerUi3();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
按F5后,显示如下:
这是项目文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<packagereference Include="NSwag.AspNetCore" Version="13.11.3" />
<packagereference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
</Project>
显然,我“丢失”了 WeatherForecastController
的 GET 方法。那么,在 .NET 5 中使用 NSwag 时如何显示完整的 swagger 界面? The code examples referred to by the docs,也没有帮助我,因为它们基于旧版本的 .NET Core。我使用 NSwag 的原因是“the most popular tool for the job”为我的客户项目生成打字稿代码。
解决方法
单击 WeatherForecast 展开节点以查看详细信息,您将在那里找到 GET 方法。