gpt4 book ai didi

.net - API 获取和浏览器崩溃后 Swagger UI 卡住

转载 作者:行者123 更新时间:2023-12-03 09:59:54 24 4
gpt4 key购买 nike

我有一个 ASP.NET WebAPI 项目,我试图用 Swagger UI 替换旧的 XmlDocumentationProvider 页面。我正在使用 swashbuckle swagger for webAPI 5.3.1 nuget 包。

我能够导航到 localhost/MyApp/swagger,我可以在 fiddler 中看到它调用了 localhost/MyApp/swagger/docs/v1 来检索代表我的 API 的 JSON 字符串。调用成功,JSON 约 240KB,JSON 有效。此时,chrome 选项卡在与“Aw snap”页面崩溃之前卡住了大约 30 秒。控制台中没有错误。

尝试在 this online validator 中验证 api JSON有效并表示规范/模式有效,当且仅当我取消选中所有三个“遵循 ___ $refs”复选框时。如果勾选了这些框中的任何一个,大约需要 30 秒,然后该工具就会崩溃。

不幸的是,我无法将整个 webAPI 规范粘贴到某处,但我会说它适用于非常大且非常复杂的内部业务应用程序。我们的一些 DTO 具有循环引用(与 DTO 本身类型相同的属性),我怀疑这可能会导致问题,但没有任何日志记录或调试我无法确定,并且有超过 1000 个 DTO 类我不想梳理它们以进行检查。

有没有办法为 swashbuckle(在服务器上)或 swagger UI(在客户端上)打开任何类型的日志记录或调试?有没有人在浏览器崩溃时遇到过这个问题并知道是什么原因造成的?提前致谢。

最佳答案

我能够注释掉我的每个 API Controller ,加载 swagger 页面,然后重新打开它们,直到页面再次崩溃。一旦我确定了问题所在的 Controller ,我就对 Controller 中的所有端点重复了这个过程。

事实证明,我们的一个非常古老的方法是将 ORM 实体作为主体参数(非常糟糕),这导致 swagger 尝试解析我们的整个 ORM 对象图并耗尽内存。更改此方法以接受 DTO 而不是数据层实体解决了问题。

关于.net - API 获取和浏览器崩溃后 Swagger UI 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35605427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com