Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 555b503

Browse files
committed
fix bug
1 parent c4b5b11 commit 555b503

File tree

5 files changed

+118
-38
lines changed

5 files changed

+118
-38
lines changed

‎src/main/java/com/hsjfans/github/generator/HtmlGenerator.java‎

Lines changed: 103 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33

44
import com.hsjfans.github.config.Config;
5-
import com.hsjfans.github.model.ApiTree;
6-
import com.hsjfans.github.model.ControllerClass;
7-
import com.hsjfans.github.model.ControllerMethod;
8-
import com.hsjfans.github.model.RequestParam;
5+
import com.hsjfans.github.model.*;
96
import com.hsjfans.github.util.CollectionUtil;
107
import com.hsjfans.github.util.FileUtil;
118
import com.hsjfans.github.util.StringUtil;
129

10+
import java.util.List;
11+
1312

1413
/**
1514
*
@@ -26,6 +25,51 @@ public class HtmlGenerator extends AbstractGenerator {
2625
private static final String urlTpl = "api-url.html";
2726
private static final String extraTpl = "js.html";
2827

28+
private static final String Request_Params_Table_No_head = " \n <tr>\n" +
29+
" <td>%s</td>\n" +
30+
" <td>%s</td>\n" +
31+
" <td>%s</td>\n" +
32+
" <td>%s</td>\n" +
33+
" <td>%s</td>\n" +
34+
" <td>%s</td>\n" +
35+
" </tr> ";
36+
private static final String Union_No_head = " \n <tr>\n" +
37+
" <td>%s</td>\n" +
38+
" <td>%s</td>\n" +
39+
" </tr> ";
40+
41+
private static final String Request_Params_Table_head = "<table class=\"table\">\n" +
42+
" <tr align=\"center\">\n" +
43+
" <th>名称</th>\n" +
44+
" <th>类型</th>\n" +
45+
" <th>取值</th>\n" +
46+
" <th>必需</th>\n" +
47+
" <th>模糊</th>\n" +
48+
" <th>说明</th>\n" +
49+
" </tr>\n" +
50+
" ${requestParams}\n" +
51+
" </table>";
52+
53+
private static final String Response_Return_Table_Head = "<table class=\"table\">\n" +
54+
" <!--<caption><h4></h4></caption>-->\n" +
55+
" <tr align=\"center\">\n" +
56+
" <th>名称</th>\n" +
57+
" <th>类型</th>\n" +
58+
" <th>取值</th>\n" +
59+
" <th>说明</th>\n" +
60+
" </tr>\n" +
61+
" ${responses}\n" +
62+
" </table>";
63+
64+
65+
private static final String Response_Return_Table_No_Head =
66+
" <tr>\n" +
67+
" <td>%s</td>\n" +
68+
" <td>%s</td>\n" +
69+
" <td>%s</td>\n" +
70+
" <td>%s</td>\n" +
71+
" </tr>";
72+
2973

3074
@Override
3175
public void from(ApiTree apiTree, Config config) {
@@ -94,41 +138,71 @@ protected void buildApiDoc(ControllerClass controllerClass, ControllerMethod con
94138
method = method.replace("${api-url-description}",controllerMethod.getDescription());
95139
method = method.replace("${methods}", CollectionUtil.requestMethodsToString(controllerMethod.getMethods()));
96140
method = method.replace("${author}",controllerMethod.getAuthor());
141+
method = method.replace("${requestParams}", generateRequestParams(controllerMethod.getParams()));
142+
method = method.replace("${responses}", generateResponseReturn(controllerMethod.getResponseReturn()));
143+
144+
145+
FileUtil.to(this.config.getOutPath()+controllerClass.getName()+"_"+controllerMethod.getName()+".html",method);
146+
}
97147

148+
149+
private String generateRequestParams(List<RequestParam> requestParams){
98150
StringBuilder params = new StringBuilder();
99-
controllerMethod.getParams().forEach(requestParam->{
100-
if(requestParam.getParams()==null){
101-
params.append(String.format(" \n <tr>\n" +
102-
" <td>%s</td>\n" +
103-
" <td>%s</td>\n" +
104-
" <td>%s</td>\n" +
105-
" <td>%s</td>\n" +
106-
" <td>%s</td>\n" +
107-
" <td>%s</td>\n" +
108-
" </tr> ",requestParam.getName(),requestParam.getType(),
151+
requestParams.forEach(requestParam->{
152+
if(requestParam.getParams()!=null&&requestParam.getParams().size()>0){
153+
params.append(String.format(Union_No_head,
154+
requestParam.getName(),
155+
Request_Params_Table_head.replace("${requestParams}",generateRequestParams(requestParam.getParams()))
156+
));
157+
}else {
158+
params.append(String.format(Request_Params_Table_No_head,requestParam.getName(),requestParam.getType(),
109159
StringUtil.enumToStrs(requestParam.getEnumValues()),requestParam.isNecessary(),requestParam.isFuzzy(),
110160
requestParam.getDescription()));
111-
}else {
112-
// todo
113161
}
114162
});
115-
method = method.replace("${requestParams}", params.toString());
116163

117-
StringBuilder responses = new StringBuilder();
118-
responses.append(String.format(
119-
" <tr>\n" +
120-
" <td>%s</td>\n" +
121-
" <td>%s</td>\n" +
122-
" <td>%s</td>\n" +
123-
" </tr>"
124-
,controllerMethod.getResponseReturn().getName(),
125-
controllerMethod.getResponseReturn().getType(),
126-
controllerMethod.getResponseReturn().getDescription()));
164+
return params.toString();
165+
166+
}
127167

128-
method = method.replace("${responses}", responses.toString());
168+
privateStringgenerateResponseReturn(ResponseReturnresponseReturn){
129169

170+
StringBuilder responses = new StringBuilder();
130171

131-
FileUtil.to(this.config.getOutPath()+controllerClass.getName()+"_"+controllerMethod.getName()+".html",method);
172+
if(responseReturn.getReturnItem()!=null&&responseReturn.getReturnItem().size()>0){
173+
responses.append(String.format(Union_No_head,
174+
responseReturn.getName(),
175+
Request_Params_Table_head.replace("${requestParams}",generateRequestParams(responseReturn.getReturnItem()))
176+
));
177+
// responses.append(Response_Return_Table_Head.replace("${responses}",generateResponseItems(responseReturn.getReturnItem())));
178+
}else {
179+
responses.append(String.format(Response_Return_Table_No_Head,
180+
responseReturn.getName(),
181+
responseReturn.getType(),
182+
StringUtil.enumToStrs(responseReturn.getEnumValues()),
183+
responseReturn.getDescription()));
184+
}
185+
return responses.toString();
186+
}
187+
188+
private String generateResponseItems(List<RequestParam> requestParams){
189+
StringBuilder responses = new StringBuilder();
190+
requestParams.forEach(requestParam -> {
191+
if(requestParam.getParams()!=null&&requestParam.getParams().size()>0){
192+
responses.append(String.format(Union_No_head,
193+
requestParam.getName(),
194+
Request_Params_Table_head.replace("${requestParams}",generateRequestParams(requestParam.getParams()))
195+
));
196+
responses.append(Response_Return_Table_Head.replace("${responses}",generateResponseItems(requestParam.getParams())));
197+
}else {
198+
responses.append(String.format(Response_Return_Table_No_Head,
199+
requestParam.getName(),
200+
requestParam.getType(),
201+
StringUtil.enumToStrs(requestParam.getEnumValues()),
202+
requestParam.getDescription()));
203+
}
204+
});
205+
return responses.toString();
132206
}
133207

134208
@Override

‎src/main/java/com/hsjfans/github/model/ResponseReturn.java‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ public class ResponseReturn {
3131
*/
3232
private String type;
3333

34+
private Object[] enumValues;
35+
3436

3537

3638
}

‎src/main/java/com/hsjfans/github/util/ClassUtils.java‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,16 @@ public static ControllerMethod parseMethodComment(MethodDeclaration methodDeclar
202202
if(authors.size()>0){
203203
controllerMethod.setAuthor(authors.get(0).getName().get());
204204
}
205+
responseReturn.setType(method.getReturnType().getSimpleName());
205206
// parse method return
206-
if(!method.getReturnType().isPrimitive()){
207+
if(!method.getReturnType().isPrimitive()&&!method.getReturnType().isEnum()){
207208
responseReturn.setReturnItem(parseRequestParam(method.getReturnType()));
209+
}else if(method.getReturnType().isEnum()){
210+
responseReturn.setEnumValues(method.getReturnType().getEnumConstants());
211+
responseReturn.setType("String");
208212
}
209-
210213
controllerMethod.setParams(requestParams);
211-
responseReturn.setType(method.getReturnType().getSimpleName());
214+
212215
if(responseReturn.getName()==null){
213216
responseReturn.setName(method.getReturnType().getSimpleName());
214217
}
@@ -268,16 +271,16 @@ private static List<RequestParam> parseRequestParam(Class<?> request){
268271
else if(field.getType().isEnum()){
269272
// System.out.println(" enum is"+field);
270273
Object[] enumValues = new Object[field.getType().getEnumConstants().length];
271-
272274
for (int i = 0; i <field.getType().getEnumConstants().length ; i++) {
273275
enumValues[i] = field.getType().getEnumConstants()[i];
274276
}
275-
276277
requestParam.setEnumValues(enumValues);
278+
requestParam.setType("String");
277279

278-
}else if(!field.getType().isInterface()) {
279-
requestParam.setParams(parseRequestParam(field.getType()));
280280
}
281+
// else if(!field.getType().isInterface()) {
282+
// requestParam.setParams(parseRequestParam(field.getType()));
283+
// }
281284

282285
requestParam.setName(field.getName());
283286
requestParams.add(requestParam);

‎src/main/resources/tpl/index.html‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
<meta http-equiv="X-UA-Compatible" content="IE=edge">
66
<meta name="viewport" content="width=device-width, initial-scale=1">
77
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
8-
<title>${api-url-name}</title>
8+
<title>${api-url-name}</title>
99
<link rel="import" href="js.html" >
10-
<![endif]-->
1110
</head>
1211
<body>
1312
<nav class="navbar navbar-default">

‎src/main/resources/tpl/js.html‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
2+
<script src="https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
13
<!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
24
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
35
<!-- 可选的 Bootstrap 主题文件(一般不用引入) -->

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /