问题描述
我关注了第一篇文章:.Net Core 3.1 Remove Schema on Swagger UI
我应用了此过滤器:
public class RemoveSchemasFilter : IDocumentFilter
{
public void Apply(OpenApiDocument swaggerDoc,DocumentFilterContext context)
{
IDictionary<string,OpenApiSchema> _remove = swaggerDoc.Components.Schemas;
foreach (keyvaluePair<string,OpenApiSchema> _item in _remove)
{
swaggerDoc.Components.Schemas.Remove(_item.Key);
}
}
}
services.AddSwaggerGen(options =>
{
options.OperationFilter<AddrequiredHeaderParameter>(Configuration.GetSection("DefaultConfig")["TenantId"]);
options.DocumentFilter<RemoveSchemasFilter>();
}
所有好的架构都从Swagger UI的底部删除。但是,当我单击某个方法时,会带来错误对话框。它可以正常工作,但是该窗口一直停留在顶部,非常烦人。
让我们一起解决这个问题吧!
解决方法
模式过滤器没有用。
所有要做的事情都在
app.UseSwaggerUI(options =>
{
options.DefaultModelsExpandDepth(-1);
}
注意:这是默认模型而不是默认模型。不同之处在于DefaultModel是模型示例部分中模型的默认扩展深度,而DefaultModels是模型的扩展深度。