如何在NSwag中暴露.NET Core 2.2 API的YAML格式Schema定义端点?
如何在NSwag中为.NET Core 2.2 API暴露YAML格式的Schema定义
我来帮你搞定NSwag暴露YAML Schema的问题,其实步骤也挺清晰的,咱们一步步来:
1. 安装必要的NuGet包
首先确保你的项目安装了两个关键包:
NSwag.AspNetCore:负责ASP.NET Core与NSwag的集成NSwag.Core.Yaml:提供YAML格式的Schema支持
可以通过NuGet包管理器控制台安装:
Install-Package NSwag.AspNetCore Install-Package NSwag.Core.Yaml
2. 在ConfigureServices中配置Swagger文档生成
打开Startup.cs,在ConfigureServices方法里添加Swagger文档的基础配置:
using NSwag.AspNetCore; using NSwag.Core.Yaml; public void ConfigureServices(IServiceCollection services) { // 先保留你原有的服务配置(比如AddMvc()等) // 添加Swagger文档生成器,配置基础元信息 services.AddSwaggerDocument(config => { config.DocumentName = "v1"; config.Title = "My API V1"; config.Version = "v1"; // 可选:补充API描述、联系人信息等 config.Description = "基于.NET Core 2.2的API服务"; }); }
3. 在Configure中暴露YAML端点并配置SwaggerUI
接着在Configure方法里,先添加YAML格式的Swagger文档暴露中间件,再配置SwaggerUI指向这个YAML文件:
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // 保留你原有的中间件(比如异常处理、静态文件、路由等) // 暴露YAML格式的Swagger文档,指定访问路径 app.UseSwaggerYaml(config => { config.Path = "/swagger/v1/swagger.yaml"; config.DocumentName = "v1"; // 要和上面配置的文档名一致 }); // 配置SwaggerUI,加载YAML格式的Schema app.UseSwaggerUi3(config => { config.DocumentPath = "/swagger/v1/swagger.yaml"; // 指向YAML文档路径 config.Path = "/swagger"; // SwaggerUI的访问路径 config.DocumentTitle = "My API V1"; }); }
这样配置完成后,启动项目访问/swagger,就能看到SwaggerUI成功加载YAML格式的Schema定义了。和Swashbuckle的简单改扩展名不同,NSwag需要显式通过UseSwaggerYaml中间件生成并暴露YAML文档,再让SwaggerUI指向它。
内容的提问来源于stack exchange,提问作者PaulStanek
相关产品推荐
相关产品推荐

