Swagger UI冻结/崩溃-Asp.Net Core 3.1。可以解决吗?

问题描述 投票:1回答:1

我在带有醒目的UI的ASP.Net Core 3.1中使用swashbuckle。当我单击模型时,整个网页崩溃/冻结。我使用了大量(大约100个)Entity Framework Core实体(JSON 7000行)。

我切换到Nswag看看是否会更好。没有更多的崩溃,但仍然很慢(单击模型时需要10秒,方法上需要20秒)

我应该制造DTO还是解决我的问题?

我也尝试将其添加到我的启动中,但这完全没有帮助。

     services.AddControllers().AddNewtonsoftJson(x =>
        {
            x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
        });
swagger swagger-ui swashbuckle nswag
1个回答
0
投票

从您所报告的内容来看,您的swashbuckle使用的是旧版本的swagger-ui,如果它们具有相同版本的swagger-ui,则与Nswag和swashbuckle的区别应该不大。

但是这个问题已经在项目中进行了讨论,完全扩展后的复杂嵌套模型非常庞大,这是我前一段时间收集的一些数据: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 |

如您所见,在浏览器中扩展模型可能是一项昂贵的任务

© www.soinside.com 2019 - 2024. All rights reserved.