一、swagger-ui.html正常显示但doc.html空白
注意:我的doc.html不是404,说明在后端我配置了doc.html。如下:
registry.addResourceHandler("doc.html")
.addResourceLocations("classpath:/META-INF/resources/");
然后,我就去浏览器查看请求接口状态。如下:
image.png
最重要的接口,如下:都是正常的。
image.png
然后,我就猜想是不是右上角的4个js错误导致的。然后就点击进去查看,如下:
image.png
发现JS在解析json的时候失败。我们知道这里解析JSON数据就是上面api-docs接口返回的数据。并且在json的97978位置解析失败。然后把json数据copy到subline,找到97978位置的字符串。如下:
image.png找到json解析失败的原因了,就是自己在swagger的example属性上设置了非法json标签,导致js解析失败。
问题找到了,修改后端代码,把该example属性的值删掉。重启后,再次访问doc.html,接口文档就显示出来了。
PS:整个排查过程耗费了蛮长时间,主要最开始没往浏览器JS解析失败上想。查看接口状态都是200,就继续回到后端排查。压根没想到去看看右上角的JS错误。以后在遇到这种后端没有明显异常,前端也要怀疑,不能完全相信前端没问题。
问题解决起来其实很简单,但是寻找问题耗费时间,特别是排查方向不对。
网友评论