ลบ Schema บน Swagger UI -continued
Oct 16 2020
ฉันได้ติดตามบทความด้านบน: .Net Core 3.1 ลบ Schema บน 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>();
}
Schema ที่ดีทั้งหมดจะถูกลบออกจากด้านล่างของ Swagger UI อย่างไรก็ตามเมื่อฉันคลิกที่วิธีการหนึ่งมันจะทำให้เกิดข้อผิดพลาดขึ้น ใช้งานได้ แต่หน้าต่างนี้ยังคงอยู่ด้านบนและมันน่ารำคาญมาก
มาแก้ปัญหานี้ด้วยกันเพราะยังไม่ได้แก้ไขก่อนหน้านี้!
คำตอบ
2 grozdeto Oct 22 2020 at 14:21
ตัวกรองสคีมาไม่มีประโยชน์
สิ่งที่ต้องทำคือเข้า
app.UseSwaggerUI(options =>
{
options.DefaultModelsExpandDepth(-1);
}
หมายเหตุ: เป็นรุ่นเริ่มต้นไม่ใช่รุ่นเริ่มต้น DIfference คือ DefaultModel คือความลึกของการขยายเริ่มต้นสำหรับโมเดลในส่วนตัวอย่างโมเดลในขณะที่ DefaultModels คือความลึกของการขยายสำหรับโมเดล