.Net Core 3.1 在 Swagger UI 上删除架构

Her*_*man 8 swagger swagger-ui .net-core

我有 .Net 3.1 Web Api,我想删除 Swagger UI 上的“Schemas”部分。
怎么做? 。网

小智 13

在添加 Swagger UI 时只需添加以下行:

app.UseSwaggerUI(c => {
    c.DefaultModelsExpandDepth(-1);
});
Run Code Online (Sandbox Code Playgroud)


gro*_*eto 11

不需要架构过滤器。经过几天的努力,我发现:

所有需要做的都在

app.UseSwaggerUI(options =>
{
    options.DefaultModelsExpandDepth(-1);
}
Run Code Online (Sandbox Code Playgroud)

注意:这是默认模型而不是默认模型。DIfference is DefaultModel 是模型示例部分中模型的默认扩展深度,而 DefaultModels 是模型的扩展深度。


小智 6

经过一番绞尽脑汁后,根据用户的建议“CoffeeCodeConverterImpl”,我创建了这样的类:

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

执行:

 c.DocumentFilter<RemoveSchemasFilter>();
Run Code Online (Sandbox Code Playgroud)