I have .net solution with multiple projects and some of them have controllers in it.
I found a way to generate the endpoints with only desired route (ex: swaggerDoc.Paths.Contains("someapi/")
) to limit exposing the controllers from all different assemblies using custom implementation of IDocumentFilter services.AddSwaggerGen(c => {c.DocumentFilter<SwaggerFilters>();}
.
问题在于,图形部分为解决方案中的所有集会创造了模式,并且只保留在夸张的ui子中暴露的终点。
public class SwaggerDocFilters : IDocumentFilter
{
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
var nonMobileRoutes = swaggerDoc.Paths
.Where(x => !x.Key.ToLower().Contains("someRoute/"))
.ToList();
nonMobileRoutes.ForEach(x => { swaggerDoc.Paths.Remove(x.Key); });
foreach (var item in swaggerDoc.Components.Schemas.Where(x => !x.Key.Contains("SomeModel")))
{
swaggerDoc.Components.Schemas.Remove(item.Key);
}
}
}
以上做法 由此,我必须知道所有模式名称,以产生图形。
是否有一个更好的途径,只让控制者(上级和计划)从选定的议会中暴露出来?