我的 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
。
我这样做的方法是更新 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 注释标记。
您必须做的另一件事是,
出于参考目的,这个非常有帮助。