使用 Swagger 向端点添加注释

问题描述 投票:0回答:1

我的 API 使用 Swagger / Swashbuckle。我希望 Swagger UI 显示方法描述。在他们的文件中写道:


2 - 配置 Swashbuckle 将文件上的 XML 注释合并到生成的 Swagger JSON 中:

services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1",
        new Info
        {
            Title = "My API - V1",
            Version = "v1"
        }
     );

     var filePath = Path.Combine(System.AppContext.BaseDirectory, "MyApi.xml");
     c.IncludeXmlComments(filePath);
}

有人可以解释一下吗? 我应该用这段代码做什么?我要把它复制并粘贴到某个地方吗?如果有的话,在哪里?

(.NET Framework 4.7)

编辑:

下面贾瓦德的回答引导我找到了解决方案。在原来的SwaggerConfig.cs文件中,有这样的内容:

// If you annotate Controllers and API Types with
// Xml comments (http://msdn.microsoft.com/en-us/library/b2s063f7(v=vs.110).aspx), you can incorporate
// those comments into the generated docs and UI. You can enable this by providing the path to one or
// more Xml comment files.
//
//c.IncludeXmlComments(GetXmlCommentsPath());

我不清楚如何更改最后一行来添加我的 XML 文件。 这有效:

c.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "bin\\KGC.API.xml"));

我还必须添加

using System.IO

c# .net swagger
1个回答
2
投票

我这样做的方法是更新 SwaggerConfig.cs 文件..

    public static void Register()
    {
        var thisAssembly = typeof(SwaggerConfig).Assembly;

        GlobalConfiguration.Configuration
            .EnableSwagger("docs/{apiVersion}", c =>
            {
                c.SingleApiVersion("v1", "Title Of API");
                c.Schemes(new List<string> { "http", "https" });
                c.UseFullTypeNameInSchemaIds();
                c.IncludeXmlComments(Path.Combine(System.AppContext.BaseDirectory, "MyApi.xml"));
            });
    }

上面代码中的最后一行启用了 XML 注释标记。

您必须做的另一件事是,

  1. 转到项目属性(不是解决方案)
  2. 构建/输出 -> 添加 XML 文档文件的路径。

出于参考目的,这个非常有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.