diff --git a/plugin/swagger-plugin/src/main/java/cn/torna/swaggerplugin/builder/ApiDocBuilder.java b/plugin/swagger-plugin/src/main/java/cn/torna/swaggerplugin/builder/ApiDocBuilder.java index 368e7edb7f9042707e97ac7a9a4b4563eaeb91a0..a07fe1b8f388708972f556abff86db76a379a85c 100644 --- a/plugin/swagger-plugin/src/main/java/cn/torna/swaggerplugin/builder/ApiDocBuilder.java +++ b/plugin/swagger-plugin/src/main/java/cn/torna/swaggerplugin/builder/ApiDocBuilder.java @@ -113,7 +113,16 @@ public class ApiDocBuilder { * 从api参数中构建 */ protected List buildFieldDocInfosByType(Class clazz, boolean root) { - final Class targetClass = PluginUtil.isCollectionOrArray(clazz) ? getCollectionElementClass(clazz) : clazz; + Class targetClassRef = PluginUtil.isCollectionOrArray(clazz) ? getCollectionElementClass(clazz) : clazz; + + // 查找泛型 + if(targetClassRef.getName().equals("org.springframework.http.ResponseEntity")){ + Field body = ReflectionUtils.findField(targetClassRef, "body"); + String typeName = ((TypeVariable) body.getGenericType()).getName(); + targetClassRef = getGenericParamClass(targetClassRef, typeName); + } + + final Class targetClass = targetClassRef; // 如果是基本类型 if (!PluginUtil.isPojo(targetClass)) { return Collections.emptyList(); @@ -163,6 +172,9 @@ public class ApiDocBuilder { child.setExample(apiParamInfo.getExample()); child.setDescription(apiParamInfo.getValue()); child.setOrderIndex(apiParamInfo.getPosition()); + if(!StringUtils.isEmpty(apiParamInfo.getName())){ + child.setName(apiParamInfo.getName()); + } } } }