Enhance file upload support

This commit is contained in:
oppofind 2021-04-09 17:00:41 +08:00
parent e8613ebfdc
commit 87b4694cac
5 changed files with 11 additions and 8 deletions

View File

@ -155,7 +155,7 @@ public class TornaBuilder {
* build apis
* @param a api
* @param hasDebugEnv has debug environment
* @return
* @return List of Api
*/
public static List<Apis> buildApis(ApiDoc a, boolean hasDebugEnv) {
List<ApiMethodDoc> apiMethodDocs = a.getList();

View File

@ -123,7 +123,7 @@ public class FormDataBuildHelper {
if (StringUtil.isNotEmpty(comment)) {
comment = DocUtil.replaceNewLineToHtmlBr(comment);
}
if (fieldGicName.contains(DocGlobalConstants.MULTIPART_FILE_FULLY)) {
if (JavaClassValidateUtil.isFile(fieldGicName)) {
FormData formData = new FormData();
formData.setKey(pre + fieldName);
formData.setType("file");

View File

@ -232,7 +232,7 @@ public class ParamsBuildHelper {
comment = DocUtil.replaceNewLineToHtmlBr(comment);
}
// file
if (fieldGicName.contains(DocGlobalConstants.MULTIPART_FILE_FULLY)) {
if (JavaClassValidateUtil.isFile(fieldGicName)) {
ApiParam param = ApiParam.of().setField(pre + fieldName).setType("file")
.setPid(pid).setId(paramList.size() + pid + 1)
.setMaxLength(maxLength)

View File

@ -391,7 +391,7 @@ public class SpringBootDocBuildTemplate implements IDocBuildTemplate<ApiDoc> {
continue;
}
//file upload
if (gicTypeName.contains(DocGlobalConstants.MULTIPART_FILE_FULLY)) {
if (JavaClassValidateUtil.isFile(gicTypeName)) {
apiMethodDoc.setContentType(FILE_CONTENT_TYPE);
FormData formData = new FormData();
formData.setKey(paramName);
@ -588,7 +588,7 @@ public class SpringBootDocBuildTemplate implements IDocBuildTemplate<ApiDoc> {
paramName = StringUtil.camelToUnderline(paramName);
}
//file upload
if (typeName.contains(DocGlobalConstants.MULTIPART_FILE_FULLY)) {
if (JavaClassValidateUtil.isFile(typeName)) {
ApiParam param = ApiParam.of().setField(paramName).setType("file")
.setId(paramList.size() + 1).setQueryParam(true)
.setRequired(true).setVersion(DocGlobalConstants.DEFAULT_VERSION)
@ -687,7 +687,7 @@ public class SpringBootDocBuildTemplate implements IDocBuildTemplate<ApiDoc> {
"true", responseFieldMap, Boolean.FALSE, new HashMap<>(), builder, groupClasses, 0));
} else {
throw new RuntimeException("Spring MVC can't support binding Collection on method "
+ javaMethod.getName() + "Check it in " + javaMethod.getDeclaringClass().getCanonicalName());
+ javaMethod.getName() + ",Check it in " + javaMethod.getDeclaringClass().getCanonicalName());
}
}
} else if (JavaClassValidateUtil.isPrimitive(fullTypeName)) {

View File

@ -267,6 +267,9 @@ public class JavaClassValidateUtil {
public static boolean isFile(String typeName){
switch (typeName) {
case "org.springframework.web.multipart.MultipartFile":
case "org.springframework.web.multipart.MultipartFile[]":
case "org.springframework.web.multipart.commons.CommonsMultipartFile":
case "org.springframework.web.multipart.commons.CommonsMultipartFile[]":
return true;
default:
return false;
@ -275,8 +278,8 @@ public class JavaClassValidateUtil {
/**
* check reactor param
* @param typeName
* @return
* @param typeName class name
* @return boolean
*/
public static boolean isReactor(String typeName) {
switch (typeName) {