From fe7740637caf9a505d7cd8c9581c6ad94bdb5dd1 Mon Sep 17 00:00:00 2001 From: oppofind <836575280@qq.com> Date: Mon, 23 Sep 2019 00:39:15 +0800 Subject: [PATCH] fix url path and add cache fresh for html --- .../com/power/doc/builder/HtmlApiDocBuilder.java | 15 +++++++++------ .../java/com/power/doc/builder/SourceBuilder.java | 15 +++++---------- .../com/power/doc/constants/TemplateVariable.java | 3 ++- src/main/java/com/power/doc/utils/PathUtil.java | 12 ++++++++++++ src/main/resources/template/HtmlApiDoc.btl | 2 +- src/main/resources/template/Index.btl | 10 +++++----- 6 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/power/doc/builder/HtmlApiDocBuilder.java b/src/main/java/com/power/doc/builder/HtmlApiDocBuilder.java index 71db828..f8afee4 100644 --- a/src/main/java/com/power/doc/builder/HtmlApiDocBuilder.java +++ b/src/main/java/com/power/doc/builder/HtmlApiDocBuilder.java @@ -24,6 +24,7 @@ import static com.power.doc.constants.DocGlobalConstants.*; */ public class HtmlApiDocBuilder { + private static long now = System.currentTimeMillis(); /** * @param config 配置 */ @@ -62,6 +63,7 @@ public class HtmlApiDocBuilder { String homePage = doc.getAlias(); indexTemplate.binding(TemplateVariable.HOME_PAGE.getVariable(), homePage); indexTemplate.binding(TemplateVariable.API_DOC_LIST.getVariable(), apiDocList); + indexTemplate.binding(TemplateVariable.VERSION.getVariable(), now); if (null != config.getLanguage()) { if (DocLanguage.CHINESE.code.equals(config.getLanguage().getCode())) { indexTemplate.binding(TemplateVariable.ERROR_LIST_TITLE.getVariable(), "A. 错误码列表"); @@ -84,6 +86,7 @@ public class HtmlApiDocBuilder { private static void buildApiDoc(List apiDocList, String outPath) { FileUtil.mkdirs(outPath); Template htmlApiDoc; + String strTime = DateTimeUtil.long2Str(now, DateTimeUtil.DATE_FORMAT_SECOND); for (ApiDoc doc : apiDocList) { Template apiTemplate = BeetlTemplateUtil.getByName(API_DOC_TPL); apiTemplate.binding(TemplateVariable.DESC.getVariable(), doc.getDesc()); @@ -93,9 +96,9 @@ public class HtmlApiDocBuilder { String html = MarkDownUtil.toHtml(apiTemplate.render()); htmlApiDoc = BeetlTemplateUtil.getByName(HTML_API_DOC_TPL); htmlApiDoc.binding(TemplateVariable.HTML.getVariable(), html); - htmlApiDoc.binding(TemplateVariable.TITLE.getVariable(),doc.getDesc()); - htmlApiDoc.binding(TemplateVariable.CREATE_TIME.getVariable(), DateTimeUtil.long2Str(System.currentTimeMillis() - , DateTimeUtil.DATE_FORMAT_SECOND)); + htmlApiDoc.binding(TemplateVariable.TITLE.getVariable(), doc.getDesc()); + htmlApiDoc.binding(TemplateVariable.CREATE_TIME.getVariable(), strTime); + htmlApiDoc.binding(TemplateVariable.VERSION.getVariable(), now); FileUtil.nioWriteFile(htmlApiDoc.render(), outPath + FILE_SEPARATOR + doc.getAlias() + ".html"); } } @@ -112,10 +115,10 @@ public class HtmlApiDocBuilder { error.binding(TemplateVariable.LIST.getVariable(), errorCodeList);//类名 String errorHtml = MarkDownUtil.toHtml(error.render()); Template errorCodeDoc = BeetlTemplateUtil.getByName(HTML_API_DOC_TPL); - errorCodeDoc.binding(TemplateVariable.TITLE.getVariable(),"error code"); + errorCodeDoc.binding(TemplateVariable.VERSION.getVariable(), now); + errorCodeDoc.binding(TemplateVariable.TITLE.getVariable(), "error code"); errorCodeDoc.binding(TemplateVariable.HTML.getVariable(), errorHtml); - errorCodeDoc.binding(TemplateVariable.CREATE_TIME.getVariable(), DateTimeUtil.long2Str(System.currentTimeMillis() - , DateTimeUtil.DATE_FORMAT_SECOND)); + errorCodeDoc.binding(TemplateVariable.CREATE_TIME.getVariable(), DateTimeUtil.long2Str(now, DateTimeUtil.DATE_FORMAT_SECOND)); FileUtil.nioWriteFile(errorCodeDoc.render(), outPath + FILE_SEPARATOR + "error_code.html"); } diff --git a/src/main/java/com/power/doc/builder/SourceBuilder.java b/src/main/java/com/power/doc/builder/SourceBuilder.java index 9fd341a..0148641 100644 --- a/src/main/java/com/power/doc/builder/SourceBuilder.java +++ b/src/main/java/com/power/doc/builder/SourceBuilder.java @@ -2,14 +2,14 @@ package com.power.doc.builder; import com.power.common.util.*; import com.power.doc.constants.DocAnnotationConstants; -import com.power.doc.constants.DocTags; import com.power.doc.constants.DocGlobalConstants; +import com.power.doc.constants.DocTags; import com.power.doc.model.*; import com.power.doc.utils.DocClassUtil; import com.power.doc.utils.DocUtil; +import com.power.doc.utils.PathUtil; import com.thoughtworks.qdox.JavaProjectBuilder; import com.thoughtworks.qdox.model.*; -import org.apache.commons.lang3.StringUtils; import java.io.File; import java.util.*; @@ -274,13 +274,8 @@ public class SourceBuilder { } url = url.replaceAll("\"", "").trim(); apiMethodDoc.setType(methodType); - if (StringUtil.isNotEmpty(baseUrl)) { - baseUrl = StringUtils.equals("/", baseUrl.subSequence(0, 1)) ? baseUrl : "/" + baseUrl; - apiMethodDoc.setUrl(this.appUrl + (baseUrl + "/" + url).replace("//", "/")); - } else { - url = StringUtils.equals("/", url.subSequence(0, 1)) ? url : "/" + url; - apiMethodDoc.setUrl(this.appUrl + (url).replace("//", "/")); - } + url = this.appUrl + "/" + baseUrl + "/" + url; + apiMethodDoc.setUrl(PathUtil.processHttpUrl(url)); String comment = getCommentTag(method, "param", cls.getCanonicalName()); apiMethodDoc.setRequestParams(comment); String requestJson = buildReqJson(method, apiMethodDoc); @@ -320,7 +315,7 @@ public class SourceBuilder { } private String buildMethodReturn(JavaMethod method, String controllerName) { - ApiReturn apiReturn = DocClassUtil.processReturnType( method.getReturnType().getGenericCanonicalName()); + ApiReturn apiReturn = DocClassUtil.processReturnType(method.getReturnType().getGenericCanonicalName()); String returnType = apiReturn.getGenericCanonicalName(); String typeName = apiReturn.getSimpleName(); if (DocClassUtil.isMvcIgnoreParams(typeName)) { diff --git a/src/main/java/com/power/doc/constants/TemplateVariable.java b/src/main/java/com/power/doc/constants/TemplateVariable.java index 7dbe115..b60ebd6 100644 --- a/src/main/java/com/power/doc/constants/TemplateVariable.java +++ b/src/main/java/com/power/doc/constants/TemplateVariable.java @@ -14,7 +14,8 @@ public enum TemplateVariable { HTML("html"), TITLE("title"), ERROR_LIST_TITLE("errorListTitle"), - CREATE_TIME("createTime"); + CREATE_TIME("createTime"), + VERSION("version"); diff --git a/src/main/java/com/power/doc/utils/PathUtil.java b/src/main/java/com/power/doc/utils/PathUtil.java index bd8e2b6..0e4540c 100644 --- a/src/main/java/com/power/doc/utils/PathUtil.java +++ b/src/main/java/com/power/doc/utils/PathUtil.java @@ -24,4 +24,16 @@ public class PathUtil { className = className.replaceAll("\\.", "\\" + File.separator); return parentDir + className + ".java"; } + + /** + * process http url + * @param url url + * @return String + */ + public static String processHttpUrl(String url) { + int index = url.indexOf("//"); + String urlHead = url.substring(0, index + 2); + String urlTail = url.substring(index + 2, url.length()).replaceAll("/+", "/"); + return new StringBuilder().append(urlHead).append(urlTail).toString(); + } } diff --git a/src/main/resources/template/HtmlApiDoc.btl b/src/main/resources/template/HtmlApiDoc.btl index 13445d7..40a55df 100644 --- a/src/main/resources/template/HtmlApiDoc.btl +++ b/src/main/resources/template/HtmlApiDoc.btl @@ -6,7 +6,7 @@ - + ${title} diff --git a/src/main/resources/template/Index.btl b/src/main/resources/template/Index.btl index 6225686..f04073f 100644 --- a/src/main/resources/template/Index.btl +++ b/src/main/resources/template/Index.btl @@ -6,7 +6,7 @@ - + api doc
@@ -20,19 +20,19 @@ for(api in apiDocList){ %>
  • - ${api.order}. ${api.desc} + ${api.order}. ${api.desc}
  • <%}%>
  • - ${errorListTitle} + ${errorListTitle}
  • - +