Dot-Net-Core

.Net Core 3.1 刪除 Swagger UI 上的架構

  • September 26, 2021

我有 .Net 3.1 Web Api,我想在 Swagger UI 上刪除這部分“架構”。

怎麼做? 。網

不需要模式過濾器。經過幾天的努力,我發現:

所有需要做的都在

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

注意:它是 DefaultModels(複數)而不是 DefaultModel(單數)。區別在於DefaultModels是模型範例部分中模型的預設擴展深度,而DefaultModels是模型的擴展深度。

經過一番折騰後,使用使用者的建議“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);
       }
   }
}

執行:

c.DocumentFilter<RemoveSchemasFilter>();

引用自:https://stackoverflow.com/questions/62858580