【问题标题】:Swagger UI Freeze/Crash - Asp.Net Core 3.1. Any fix?Swagger UI 冻结/崩溃 - Asp.Net Core 3.1。有什么修复吗?
【发布时间】:2020-02-14 14:12:48
【问题描述】:

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

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

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

我也尝试将它添加到我的创业公司,但它根本没有帮助。

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

【问题讨论】:

标签: swagger swagger-ui swashbuckle nswag


【解决方案1】:

根据您的报告,您的 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 |

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

【讨论】:

    【解决方案2】:

    我最终切换到 NSwag 并使用 DTO。滞后/崩溃消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多