Skip to content
This repository was archived by the owner on Dec 4, 2025. It is now read-only.

Commit 66edb63

Browse files
committed
feat: Optimize the settings for ExampleBody to remove duplicated code.
1 parent e1f09e3 commit 66edb63

6 files changed

Lines changed: 122 additions & 221 deletions

File tree

src/main/java/com/ly/doc/template/IBaseDocBuildTemplate.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -134,17 +134,6 @@ default void convertParamsDataToTree(ApiMethodDoc apiMethodDoc) {
134134
apiMethodDoc.setRequestParams(ApiParamTreeUtil.apiParamToTree(apiMethodDoc.getRequestParams()));
135135
}
136136

137-
138-
default String formatRequestUrl(Map<String, String> pathParamsMap, Map<String, String> queryParamsMap,
139-
String serverUrl, String path) {
140-
path = DocUtil.formatAndRemove(path, pathParamsMap);
141-
String url = UrlUtil.urlJoin(path, queryParamsMap);
142-
url = StringUtil.removeQuotes(url);
143-
url = serverUrl + "/" + url;
144-
url = UrlUtil.simplifyUrl(url);
145-
return url;
146-
}
147-
148137
default List<DocJavaParameter> getJavaParameterList(ProjectDocConfigBuilder builder, final DocJavaMethod docJavaMethod,
149138
FrameworkAnnotations frameworkAnnotations) {
150139
JavaMethod javaMethod = docJavaMethod.getJavaMethod();

src/main/java/com/ly/doc/template/IRestDocTemplate.java

Lines changed: 2 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,77 +1047,13 @@ default ApiRequestExample buildReqJson(DocJavaMethod javaMethod, ApiMethodDoc ap
10471047
if (hasFormDataUploadFile) {
10481048
apiMethodDoc.setContentType(FILE_CONTENT_TYPE);
10491049
}
1050-
1051-
Map<Boolean, List<FormData>> formDataGroupMap = formDataList.stream()
1052-
.collect(Collectors.groupingBy(e -> Objects.equals(e.getType(), DocGlobalConstants.PARAM_TYPE_FILE)));
1053-
List<FormData> fileFormDataList = formDataGroupMap.getOrDefault(Boolean.TRUE, new ArrayList<>());
1054-
10551050
requestExample.setFormDataList(formDataList);
1056-
String[] paths = apiMethodDoc.getPath().split(";");
1057-
String path = paths[0];
1058-
String body;
1059-
String exampleBody;
1060-
String url;
10611051
// curl send file to convert
10621052
final Map<String, String> formDataToMap = DocUtil.formDataToMap(formDataList);
10631053
// formData add to params '--data'
10641054
queryParamsMap.putAll(formDataToMap);
1065-
if (Methods.POST.getValue().equals(methodType) || Methods.PUT.getValue().equals(methodType)) {
1066-
// for post put
1067-
path = DocUtil.formatAndRemove(path, pathParamsMap);
1068-
body = UrlUtil.urlJoin(DocGlobalConstants.EMPTY, queryParamsMap)
1069-
.replace("?", DocGlobalConstants.EMPTY);
1070-
url = apiMethodDoc.getServerUrl() + "/" + path;
1071-
url = UrlUtil.simplifyUrl(url);
1072-
1073-
if (requestExample.isJson()) {
1074-
if (StringUtil.isNotEmpty(body)) {
1075-
url = url + "?" + body;
1076-
}
1077-
CurlRequest curlRequest = CurlRequest.builder()
1078-
.setBody(requestExample.getJsonBody())
1079-
.setContentType(apiMethodDoc.getContentType())
1080-
.setType(methodType)
1081-
.setReqHeaders(reqHeaderList)
1082-
.setUrl(url);
1083-
exampleBody = CurlUtil.toCurl(curlRequest);
1084-
} else {
1085-
CurlRequest curlRequest;
1086-
if (StringUtil.isNotEmpty(body)) {
1087-
curlRequest = CurlRequest.builder()
1088-
.setBody(body)
1089-
.setContentType(apiMethodDoc.getContentType())
1090-
.setFileFormDataList(fileFormDataList)
1091-
.setType(methodType)
1092-
.setReqHeaders(reqHeaderList)
1093-
.setUrl(url);
1094-
} else {
1095-
curlRequest = CurlRequest.builder()
1096-
.setBody(requestExample.getJsonBody())
1097-
.setContentType(apiMethodDoc.getContentType())
1098-
.setFileFormDataList(fileFormDataList)
1099-
.setType(methodType)
1100-
.setReqHeaders(reqHeaderList)
1101-
.setUrl(url);
1102-
}
1103-
exampleBody = CurlUtil.toCurl(curlRequest);
1104-
}
1105-
requestExample.setExampleBody(exampleBody).setUrl(url);
1106-
} else {
1107-
// for get delete
1108-
url = formatRequestUrl(pathParamsMap, queryParamsMap, apiMethodDoc.getServerUrl(), path);
1109-
CurlRequest curlRequest = CurlRequest.builder()
1110-
.setBody(requestExample.getJsonBody())
1111-
.setContentType(apiMethodDoc.getContentType())
1112-
.setType(methodType)
1113-
.setReqHeaders(reqHeaderList)
1114-
.setUrl(url);
1115-
exampleBody = CurlUtil.toCurl(curlRequest);
1116-
1117-
requestExample.setExampleBody(exampleBody)
1118-
.setJsonBody(requestExample.isJson() ? requestExample.getJsonBody() : DocGlobalConstants.EMPTY)
1119-
.setUrl(url);
1120-
}
1055+
// set example body
1056+
RequestExampleUtil.setExampleBody(apiMethodDoc,requestExample,formDataList,pathParamsMap,queryParamsMap);
11211057
return requestExample;
11221058
}
11231059

src/main/java/com/ly/doc/template/JAXRSDocBuildTemplate.java

Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -638,69 +638,9 @@ private ApiRequestExample buildReqJson(DocJavaMethod javaMethod, ApiMethodDoc ap
638638
requestExample.setJsonBody(JsonUtil.toPrettyFormat(json)).setJson(true);
639639
}
640640
}
641-
642-
643641
}
644642
requestExample.setFormDataList(formDataList);
645-
String[] paths = apiMethodDoc.getPath().split(";");
646-
String path = paths[0];
647-
String body;
648-
String exampleBody;
649-
String url;
650-
if (JakartaJaxrsAnnotations.POST.equals(methodType) || JakartaJaxrsAnnotations.PUT.equals(methodType)) {
651-
// for post put
652-
path = DocUtil.formatAndRemove(path, pathParamsMap);
653-
body = UrlUtil.urlJoin(DocGlobalConstants.EMPTY, DocUtil.formDataToMap(formDataList))
654-
.replace("?", DocGlobalConstants.EMPTY);
655-
body = StringUtil.removeQuotes(body);
656-
url = apiMethodDoc.getServerUrl() + "/" + path;
657-
url = UrlUtil.simplifyUrl(url);
658-
659-
if (requestExample.isJson()) {
660-
if (StringUtil.isNotEmpty(body)) {
661-
url = url + "?" + body;
662-
}
663-
CurlRequest curlRequest = CurlRequest.builder()
664-
.setBody(requestExample.getJsonBody())
665-
.setContentType(apiMethodDoc.getContentType())
666-
.setType(methodType)
667-
.setReqHeaders(reqHeaderList)
668-
.setUrl(url);
669-
exampleBody = CurlUtil.toCurl(curlRequest);
670-
} else {
671-
CurlRequest curlRequest;
672-
if (StringUtil.isNotEmpty(body)) {
673-
curlRequest = CurlRequest.builder()
674-
.setBody(body)
675-
.setContentType(apiMethodDoc.getContentType())
676-
.setType(methodType)
677-
.setReqHeaders(reqHeaderList)
678-
.setUrl(url);
679-
} else {
680-
curlRequest = CurlRequest.builder()
681-
.setBody(requestExample.getJsonBody())
682-
.setContentType(apiMethodDoc.getContentType())
683-
.setType(methodType)
684-
.setReqHeaders(reqHeaderList)
685-
.setUrl(url);
686-
}
687-
exampleBody = CurlUtil.toCurl(curlRequest);
688-
}
689-
requestExample.setExampleBody(exampleBody).setUrl(url);
690-
} else {
691-
// for get delete
692-
url = formatRequestUrl(pathParamsMap, pathParamsMap, apiMethodDoc.getServerUrl(), path);
693-
CurlRequest curlRequest = CurlRequest.builder()
694-
.setBody(requestExample.getJsonBody())
695-
.setContentType(apiMethodDoc.getContentType())
696-
.setType(methodType)
697-
.setReqHeaders(reqHeaderList)
698-
.setUrl(url);
699-
exampleBody = CurlUtil.toCurl(curlRequest);
700-
requestExample.setExampleBody(exampleBody)
701-
.setJsonBody(DocGlobalConstants.EMPTY)
702-
.setUrl(url);
703-
}
643+
RequestExampleUtil.setExampleBody(apiMethodDoc,requestExample,formDataList,pathParamsMap,pathParamsMap);
704644
return requestExample;
705645
}
706646

src/main/java/com/ly/doc/utils/CurlUtil.java

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,15 @@
2020
*/
2121
package com.ly.doc.utils;
2222

23-
import java.util.ArrayList;
2423
import java.util.List;
25-
import java.util.Map;
2624
import java.util.Objects;
27-
import java.util.stream.Collectors;
2825

2926
import com.ly.doc.constants.DocGlobalConstants;
30-
import com.ly.doc.constants.Methods;
31-
import com.ly.doc.model.ApiMethodDoc;
3227
import com.ly.doc.model.ApiReqParam;
3328
import com.ly.doc.model.FormData;
34-
import com.ly.doc.model.request.ApiRequestExample;
3529
import com.power.common.util.CollectionUtil;
3630
import com.power.common.util.StringUtil;
3731
import com.ly.doc.model.request.CurlRequest;
38-
import com.power.common.util.UrlUtil;
3932

4033
/**
4134
* @author yu 2020/12/21.
@@ -89,80 +82,4 @@ public static String toCurl(CurlRequest request) {
8982
}
9083
return sb.toString();
9184
}
92-
93-
public void setExampleBody(ApiMethodDoc apiMethodDoc, ApiRequestExample requestExample,
94-
List<FormData> formDataList,
95-
Map<String, String> pathParamsMap, Map<String, String> queryParamsMap) {
96-
String methodType = apiMethodDoc.getType();
97-
String[] paths = apiMethodDoc.getPath().split(";");
98-
String path = paths[0];
99-
String body;
100-
String exampleBody;
101-
String url;
102-
List<ApiReqParam> reqHeaderList = apiMethodDoc.getRequestHeaders();
103-
Map<Boolean, List<FormData>> formDataGroupMap = formDataList.stream()
104-
.collect(Collectors.groupingBy(e -> Objects.equals(e.getType(), DocGlobalConstants.PARAM_TYPE_FILE)));
105-
List<FormData> fileFormDataList = formDataGroupMap.getOrDefault(Boolean.TRUE, new ArrayList<>());
106-
// curl send file to convert
107-
final Map<String, String> formDataToMap = DocUtil.formDataToMap(formDataList);
108-
// formData add to params '--data'
109-
queryParamsMap.putAll(formDataToMap);
110-
if (Methods.POST.getValue().equals(methodType) || Methods.PUT.getValue().equals(methodType)) {
111-
// for post put
112-
path = DocUtil.formatAndRemove(path, pathParamsMap);
113-
body = UrlUtil.urlJoin(DocGlobalConstants.EMPTY, queryParamsMap)
114-
.replace("?", DocGlobalConstants.EMPTY);
115-
url = apiMethodDoc.getServerUrl() + "/" + path;
116-
url = UrlUtil.simplifyUrl(url);
117-
118-
if (requestExample.isJson()) {
119-
if (StringUtil.isNotEmpty(body)) {
120-
url = url + "?" + body;
121-
}
122-
CurlRequest curlRequest = CurlRequest.builder()
123-
.setBody(requestExample.getJsonBody())
124-
.setContentType(apiMethodDoc.getContentType())
125-
.setType(methodType)
126-
.setReqHeaders(reqHeaderList)
127-
.setUrl(url);
128-
exampleBody = CurlUtil.toCurl(curlRequest);
129-
} else {
130-
CurlRequest curlRequest;
131-
if (StringUtil.isNotEmpty(body)) {
132-
curlRequest = CurlRequest.builder()
133-
.setBody(body)
134-
.setContentType(apiMethodDoc.getContentType())
135-
.setFileFormDataList(fileFormDataList)
136-
.setType(methodType)
137-
.setReqHeaders(reqHeaderList)
138-
.setUrl(url);
139-
} else {
140-
curlRequest = CurlRequest.builder()
141-
.setBody(requestExample.getJsonBody())
142-
.setContentType(apiMethodDoc.getContentType())
143-
.setFileFormDataList(fileFormDataList)
144-
.setType(methodType)
145-
.setReqHeaders(reqHeaderList)
146-
.setUrl(url);
147-
}
148-
exampleBody = CurlUtil.toCurl(curlRequest);
149-
}
150-
requestExample.setExampleBody(exampleBody).setUrl(url);
151-
} else {
152-
// for get delete
153-
url = "";
154-
//formatRequestUrl(pathParamsMap, queryParamsMap, apiMethodDoc.getServerUrl(), path);
155-
CurlRequest curlRequest = CurlRequest.builder()
156-
.setBody(requestExample.getJsonBody())
157-
.setContentType(apiMethodDoc.getContentType())
158-
.setType(methodType)
159-
.setReqHeaders(reqHeaderList)
160-
.setUrl(url);
161-
exampleBody = CurlUtil.toCurl(curlRequest);
162-
163-
requestExample.setExampleBody(exampleBody)
164-
.setJsonBody(requestExample.isJson() ? requestExample.getJsonBody() : DocGlobalConstants.EMPTY)
165-
.setUrl(url);
166-
}
167-
}
16885
}

src/main/java/com/ly/doc/utils/DocUrlUtil.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package com.ly.doc.utils;
2222

2323
import java.util.List;
24+
import java.util.Map;
2425
import java.util.Optional;
2526

2627
import com.ly.doc.constants.DocGlobalConstants;
@@ -67,4 +68,14 @@ public static String getMvcUrls(String baseServer, String baseUrl, String shortU
6768
List<String> urls = DocUtil.split(shortUrl);
6869
return getMvcUrls(baseServer, baseUrl, urls);
6970
}
71+
72+
public static String formatRequestUrl(Map<String, String> pathParamsMap, Map<String, String> queryParamsMap,
73+
String serverUrl, String path) {
74+
path = DocUtil.formatAndRemove(path, pathParamsMap);
75+
String url = UrlUtil.urlJoin(path, queryParamsMap);
76+
url = StringUtil.removeQuotes(url);
77+
url = serverUrl + "/" + url;
78+
url = UrlUtil.simplifyUrl(url);
79+
return url;
80+
}
7081
}

0 commit comments

Comments
 (0)