首页 > 解决方案 > 具有 Swashbuckle.AspNetCore 的不同 swagger 文档的不同 DocInclusionPredicate

问题描述

我正在尝试生成多个 swagger.json 文档并使用自定义操作选择过程来确定哪个操作转到哪个 swagger 文档。

是否可以为不同的 swagger 文档使用不同的 DocInclusionPredicate?

例如,我有

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

如何指定一个DocInclusionPredicate文件v1和另一个DocInclusionPredicate文件v2

标签: swaggerswagger-uiswashbuckle

解决方案


c.DocInclusionPredicate((docName, apiDesc) =>
{
    if (docName == "v1")
    { /* actions for v1 */ }
    else if (docName == "v2")
    { /* actions for v2 */ }
});

然后返回true谓词是否属于特定版本或者false是否应在正确的 if 语句中过滤掉


推荐阅读