扫码阅读
手机扫码阅读

Groovy Swagger @requestBody 加载超时 一键搞定

146 2024-04-13

项目中接入Swagger功能的问题及解决方案概述

在开发Springboot项目并接入Swagger功能的过程中,作者遇到了一些问题,并分享了解决方案。主要问题包括@RequestBody注解与Swagger的不兼容性,以及Swagger API请求超时的问题。

@RequestBody兼容性问题

针对@RequestBody注解不兼容Swagger的问题,网络上主要有两种解决方案:

  1. 通过环境配置分开线上和线下环境,规避兼容性问题。
  2. 修改参数解析器优先级,以解决swagger功能上的冲突。

FunTester推荐通过自定义参数解析器的方式来解决此问题,提高其优先级,使其在@RequestBody注解前处理请求,或者修改Swagger的判定方式,避免改动springmvc可能带来的兼容性问题。然而,作者认为这些方案复杂且难以实施,因为代码复制后会出现依赖和注解不匹配,以及版本兼容性问题。

Swagger API请求超时问题

Swagger API请求超时问题出现在Swagger 2和Swagger 3版本中。作者初次在Swagger 3遇到此问题,切换回Swagger 2后问题解决,但后来不得不再次使用Swagger 3,被迫寻找解决方案。问题根源是groovy.lang.MetaClass导致生成Swagger JSON文件耗时过长。

解决此问题的方法是在Swagger配置中排除groovy.lang.MetaClass。这个方案不仅解决了Swagger JSON生成时间长的问题,也意外解决了@RequestBody的兼容性问题。

总结

总体而言,作者通过分享遇到的问题和解决方案,提供了对于在Springboot项目中接入Swagger时可能出现的问题的实用指导。尤其是过滤掉groovy.lang.MetaClass的方法,意外解决了两个主要问题,为其他开发者提供了便捷的解决路径。

想要了解更多,点击 查看原文