仅针对MVC核心应用程序内的API控制器生成SWAGGER/SWASBACKLE文档 [英] Swagger/Swashbuckle doc generation only for API controllers within an MVC core app
本文介绍了仅针对MVC核心应用程序内的API控制器生成SWAGGER/SWASBACKLE文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们有一个带有常规MVC控制器的ASP.NET MVC核心应用程序。此外,我们在Controlators文件夹中有一个名为";api";的子文件夹,其中包含少量API控制器。
我们使用.AddSwaggerGen
中的.IncludeXmlComments
方法来拾取项目中的XML文档。
但是,它还会提取所有常规控制器的XML。
有没有办法过滤去掉"常规"控制器,或者只选择api控制器包含在swagger文档中?
推荐答案
查看DocInclusionPredicate,它应该可以解决您的问题😉
// Startup.cs
services.AddSwaggerGen(options =>
options.DocInclusionPredicate((docName, apiDesc) =>
{
if (!apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)) return false;
// Check if methodInfo is in the right assembly
// or has the right namespace or version etc.
bool isMethodIncluded = /* true or false */;
return isMethodIncluded ;
});
);
这篇关于仅针对MVC核心应用程序内的API控制器生成SWAGGER/SWASBACKLE文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文