Remover esquema na IU Swagger - continuado

Oct 16 2020

Eu segui o artigo principal: .Net Core 3.1 Remover esquema na interface do usuário do Swagger

Eu apliquei este filtro:

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);
        }
    }
}

Eu adicionei aqui:

services.AddSwaggerGen(options =>
            {
                options.OperationFilter<AddRequiredHeaderParameter>(Configuration.GetSection("DefaultConfig")["TenantId"]);
                options.DocumentFilter<RemoveSchemasFilter>();
             }

Todo o esquema correto é removido da parte inferior da IU do Swagger. Porém, quando clico em um método, ele traz um diálogo de erros. Funciona, mas esta janela fica no topo e é muito irritante.

Vamos resolver esse problema juntos, pois não havia solução anterior!

Respostas

2 grozdeto Oct 22 2020 at 14:21

O filtro de esquema é inútil.

Tudo o que precisa ser feito está em

app.UseSwaggerUI(options =>
{
                options.DefaultModelsExpandDepth(-1);

}

Observação: é o modelo padrão, não o modelo padrão. DIfference is DefaultModel é a profundidade de expansão padrão para o modelo na seção de exemplo de modelo, enquanto DefaultModels é a profundidade de expansão para modelos.