Swagger UI Freeze/Crash - Asp.Net 核心 3.1。任何修复?

Swagger UI Freeze/Crash - Asp.Net Core 3.1. Any fix?

我在我的 ASP.Net Core 3.1 中使用 swashbuckle 和 swagger UI。 当我点击一个模型时,整个网页 crashes/freezes。 我使用了很多(大约 100 个)Entity Framework 核心实体(7000 行 JSON)。

我换成Nswag看看会不会更好。不再崩溃,但仍然很慢(单击模型时 10 秒,方法时 20 秒)

我应该制作 DTO 还是有解决我的问题的方法?

我也试过将它添加到我的启动中,但它根本没有帮助。

     services.AddControllers().AddNewtonsoftJson(x =>
        {
            x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        });

从您报告的内容看来,您的 swashbuckle 使用的是旧版本的 swagger-ui,如果 Nswag 和 swashbuckle 具有相同版本的 swagger-,它们应该没有任何显着差异- ui.

但是项目上已经讨论过这个问题,复杂的嵌套模型完全展开后是巨大的,这是我前段时间收集的一些数据:
https://github.com/swagger-api/swagger-ui/issues/4411#issuecomment-380168870

| Schema                                                     | SchemaSize | ExampleSize | ModelSize  |
|------------------------------------------------------------|------------|-------------|------------|
| http://swagger-net-test.azurewebsites.net/api/NestedSwag/2 | 1,368      | 10,578      | 262,519    |
| http://swagger-net-test.azurewebsites.net/api/NestedSwag/3 | 1,662      | 59,703      | 1,321,999  |
| http://swagger-net-test.azurewebsites.net/api/NestedSwag/4 | 1,956      | 332,828     | 6,640,079  |
| http://swagger-net-test.azurewebsites.net/api/NestedSwag/5 | 2,250      | 1,835,953   | 33,305,772 |

如您所见,在浏览器上扩展这些复杂模型可能是一项代价高昂的任务。

我最终切换到 NSwag 并使用 DTO。 lag/crash 不见了。