记录Knife4j与自定义统一结果的冲突
在使用 knife4j-openapi3-jakarta-spring-boot-starter的时候,明明版本使用正确,但是访问 doc.html 时总是出现 文档请求异常。
问题解决思考:
使用 最近比较火的 ai 编程助手进行分析,给出的建议是:查看配置、依赖等等(可能是我没有给出更详细的日志信息)。
于是我重开了一个项目,进行测试,发现可以成功的运行。证明spring boot版本和Knife4j 版本并没有问题。
排除了版本适配问题,便把矛头指向 其他依赖。
因此搜索: knife4j 与什么依赖会生成冲突?
给出原因是:主要原因是knife4j的返回值,被自定义的统一返回封装后,页面无法解析。
但是为什么呢?https://doc.xiaominfo.com/docs/faq/knife4j-exception
在knife4j 官网中发现swagger 接口有固定的格式,如果有对接口进行统一的封装,会导致接口处理异常。需要手动的去除掉对swagger分组的封装。
而我的项目中有全局异常处理接口,返回友好信息。只需要手动去除即可。
//@RestControllerAdvice(basePackages = "top.rose.template.controller")