You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 11:24:16