change version, update PostmanBuilder method name
This commit is contained in:
parent
d3a8655b97
commit
5b0500d55a
4
pom.xml
4
pom.xml
|
@ -5,7 +5,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>smart-doc</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.8.0</version>
|
||||
<version>1.8.1</version>
|
||||
|
||||
<name>smart-doc</name>
|
||||
<url>https://github.com/shalousun/smart-doc.git</url>
|
||||
|
@ -86,7 +86,7 @@
|
|||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.8.5</version>
|
||||
<version>2.8.6</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
|
|
|
@ -32,7 +32,8 @@ public class AdocDocBuilder {
|
|||
}
|
||||
|
||||
/**
|
||||
* Used for plugin
|
||||
* Only for smart-doc-maven-plugin.
|
||||
*
|
||||
* @param config ApiConfig
|
||||
* @param javaProjectBuilder ProjectDocConfigBuilder
|
||||
*/
|
||||
|
|
|
@ -2,14 +2,11 @@ package com.power.doc.builder;
|
|||
|
||||
import com.power.doc.model.ApiAllData;
|
||||
import com.power.doc.model.ApiConfig;
|
||||
import com.power.doc.model.ApiDoc;
|
||||
import com.power.doc.template.IDocBuildTemplate;
|
||||
import com.power.doc.template.SpringBootDocBuildTemplate;
|
||||
import com.thoughtworks.qdox.JavaProjectBuilder;
|
||||
|
||||
/**
|
||||
* @since 1.7.9
|
||||
* @author yu 2019/12/7.
|
||||
* @since 1.7.9
|
||||
*/
|
||||
public class ApiDataBuilder {
|
||||
|
||||
|
|
|
@ -31,7 +31,8 @@ public class ApiDocBuilder {
|
|||
}
|
||||
|
||||
/**
|
||||
* Used for plugin
|
||||
* Only for smart-doc-maven-plugin.
|
||||
*
|
||||
* @param config ApiConfig
|
||||
* @param javaProjectBuilder ProjectDocConfigBuilder
|
||||
*/
|
||||
|
|
|
@ -43,7 +43,8 @@ public class HtmlApiDocBuilder {
|
|||
}
|
||||
|
||||
/**
|
||||
* Used for plugin
|
||||
* Only for smart-doc-maven-plugin.
|
||||
*
|
||||
* @param config ApiConfig
|
||||
* @param javaProjectBuilder ProjectDocConfigBuilder
|
||||
*/
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.power.doc.builder;
|
|||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.power.common.util.FileUtil;
|
||||
import com.power.doc.constants.DocGlobalConstants;
|
||||
import com.power.doc.model.ApiConfig;
|
||||
|
@ -15,14 +14,11 @@ import com.power.doc.model.postman.ItemBean;
|
|||
import com.power.doc.model.postman.RequestItem;
|
||||
import com.power.doc.model.postman.request.RequestBean;
|
||||
import com.power.doc.model.postman.request.body.BodyBean;
|
||||
import com.power.doc.model.FormData;
|
||||
import com.power.doc.model.postman.request.header.HeaderBean;
|
||||
import com.power.doc.template.IDocBuildTemplate;
|
||||
import com.power.doc.template.SpringBootDocBuildTemplate;
|
||||
import com.thoughtworks.qdox.JavaProjectBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -32,31 +28,13 @@ import java.util.List;
|
|||
*/
|
||||
public class PostmanJsonBuilder {
|
||||
|
||||
public static void postManCreate(ApiConfig config,ProjectDocConfigBuilder configBuilder){
|
||||
IDocBuildTemplate docBuildTemplate = new SpringBootDocBuildTemplate();
|
||||
List<ApiDoc> apiDocList = docBuildTemplate.getApiData(configBuilder);
|
||||
RequestItem requestItem = new RequestItem();
|
||||
requestItem.setInfo(new InfoBean(config.getProjectName()));
|
||||
List<ItemBean> itemBeans = new ArrayList<>();
|
||||
apiDocList.forEach(
|
||||
apiDoc -> {
|
||||
ItemBean itemBean = buildItemBean(apiDoc);
|
||||
itemBeans.add(itemBean);
|
||||
}
|
||||
);
|
||||
requestItem.setItem(itemBeans);
|
||||
String filePath = config.getOutPath();
|
||||
filePath = filePath + DocGlobalConstants.POSTMAN_JSON;
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String data = gson.toJson(requestItem);
|
||||
FileUtil.nioWriteFile(data, filePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建postman json
|
||||
*
|
||||
* @param config 配置文件
|
||||
*/
|
||||
public static void buildPostmanApi(ApiConfig config) {
|
||||
public static void buildPostmanCollection(ApiConfig config) {
|
||||
DocBuilderTemplate builderTemplate = new DocBuilderTemplate();
|
||||
builderTemplate.checkAndInit(config);
|
||||
JavaProjectBuilder javaProjectBuilder = new JavaProjectBuilder();
|
||||
|
@ -64,7 +42,14 @@ public class PostmanJsonBuilder {
|
|||
postManCreate(config, configBuilder);
|
||||
|
||||
}
|
||||
public static void buildPostmanApi(ApiConfig config,JavaProjectBuilder projectBuilder) {
|
||||
|
||||
/**
|
||||
* Only for smart-doc-maven-plugin.
|
||||
*
|
||||
* @param config ApiConfig Object
|
||||
* @param projectBuilder QDOX avaProjectBuilder
|
||||
*/
|
||||
public static void buildPostmanCollection(ApiConfig config, JavaProjectBuilder projectBuilder) {
|
||||
DocBuilderTemplate builderTemplate = new DocBuilderTemplate();
|
||||
builderTemplate.checkAndInit(config);
|
||||
ProjectDocConfigBuilder configBuilder = new ProjectDocConfigBuilder(config, projectBuilder);
|
||||
|
@ -165,4 +150,24 @@ public class PostmanJsonBuilder {
|
|||
return headerBeans;
|
||||
}
|
||||
|
||||
private static void postManCreate(ApiConfig config, ProjectDocConfigBuilder configBuilder) {
|
||||
IDocBuildTemplate docBuildTemplate = new SpringBootDocBuildTemplate();
|
||||
List<ApiDoc> apiDocList = docBuildTemplate.getApiData(configBuilder);
|
||||
RequestItem requestItem = new RequestItem();
|
||||
requestItem.setInfo(new InfoBean(config.getProjectName()));
|
||||
List<ItemBean> itemBeans = new ArrayList<>();
|
||||
apiDocList.forEach(
|
||||
apiDoc -> {
|
||||
ItemBean itemBean = buildItemBean(apiDoc);
|
||||
itemBeans.add(itemBean);
|
||||
}
|
||||
);
|
||||
requestItem.setItem(itemBeans);
|
||||
String filePath = config.getOutPath();
|
||||
filePath = filePath + DocGlobalConstants.POSTMAN_JSON;
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
String data = gson.toJson(requestItem);
|
||||
FileUtil.nioWriteFile(data, filePath);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.power.doc.constants;
|
|||
|
||||
/**
|
||||
* http methods
|
||||
*
|
||||
* @author yu 2019/11/21.
|
||||
*/
|
||||
public enum Methods {
|
||||
|
|
|
@ -15,8 +15,7 @@ public enum SpringMvcRequestAnnotationsEnum {
|
|||
REQUEST_BODY("RequestBody"),
|
||||
REQUEST_BODY_FULLY("org.springframework.web.bind.annotation.RequestBody"),
|
||||
REQUEST_HERDER("RequestHeader"),
|
||||
REQUEST_HERDER_FULLY ("org.springframework.web.bind.annotation.RequestHeader"),
|
||||
;
|
||||
REQUEST_HERDER_FULLY("org.springframework.web.bind.annotation.RequestHeader"),;
|
||||
private String value;
|
||||
|
||||
SpringMvcRequestAnnotationsEnum(String value) {
|
||||
|
|
|
@ -22,6 +22,7 @@ public class SpringMVCRequestHeaderHandler {
|
|||
|
||||
/**
|
||||
* handle Spring MVC Request Header
|
||||
*
|
||||
* @param method JavaMethod
|
||||
* @return list of ApiReqHeader
|
||||
*/
|
||||
|
|
|
@ -3,8 +3,8 @@ package com.power.doc.model;
|
|||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @since 1.7.9
|
||||
* @author yu 2019/12/7.
|
||||
* @since 1.7.9
|
||||
*/
|
||||
public class ApiAllData {
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package com.power.doc.model;
|
||||
|
||||
/**
|
||||
* @since 1.7.9
|
||||
* @author yu 2019/12/7.
|
||||
* @since 1.7.9
|
||||
*/
|
||||
public class ApiErrorCodeDictionary {
|
||||
|
||||
|
@ -25,14 +25,14 @@ public class ApiErrorCodeDictionary {
|
|||
*/
|
||||
private String descField;
|
||||
|
||||
public Class getEnumClass() {
|
||||
return enumClass;
|
||||
}
|
||||
|
||||
public static ApiErrorCodeDictionary dict() {
|
||||
return new ApiErrorCodeDictionary();
|
||||
}
|
||||
|
||||
public Class getEnumClass() {
|
||||
return enumClass;
|
||||
}
|
||||
|
||||
public ApiErrorCodeDictionary setEnumClass(Class enumClass) {
|
||||
this.enumClass = enumClass;
|
||||
return this;
|
||||
|
|
|
@ -15,13 +15,14 @@ public class ApiMethodDoc implements Serializable {
|
|||
|
||||
/**
|
||||
* methodId handled by md5
|
||||
* @since 1.7.3 +
|
||||
*
|
||||
* @since 1.7.3 +
|
||||
*/
|
||||
private String methodId;
|
||||
|
||||
/**
|
||||
* method name
|
||||
*
|
||||
* @since 1.7.3 +
|
||||
*/
|
||||
private String name;
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
package com.power.doc.model.postman;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.power.common.util.StringUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
|
@ -14,14 +11,14 @@ import java.util.UUID;
|
|||
*/
|
||||
public class InfoBean {
|
||||
|
||||
String schema;
|
||||
private String _postman_id = UUID.randomUUID().toString();
|
||||
private String name;
|
||||
String schema ;
|
||||
|
||||
public InfoBean(String name) {
|
||||
if (StringUtils.isBlank(name)) {
|
||||
this.name = "smart-doc " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("YYYY-MM-DD HH:MM:SS"));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
this.name = name;
|
||||
}
|
||||
this.schema = "https://schema.getpostman.com/json/collection/v2.0.0/collection.json";
|
||||
|
|
|
@ -14,14 +14,6 @@ public class BodyBean {
|
|||
private List<FormData> formdata;
|
||||
private BodyOptions options;
|
||||
|
||||
public List<FormData> getFormdata() {
|
||||
return formdata;
|
||||
}
|
||||
|
||||
public void setFormdata(List<FormData> formdata) {
|
||||
this.formdata = formdata;
|
||||
}
|
||||
|
||||
public BodyBean(boolean isFormData) {
|
||||
if (isFormData) {
|
||||
|
||||
|
@ -30,6 +22,14 @@ public class BodyBean {
|
|||
}
|
||||
}
|
||||
|
||||
public List<FormData> getFormdata() {
|
||||
return formdata;
|
||||
}
|
||||
|
||||
public void setFormdata(List<FormData> formdata) {
|
||||
this.formdata = formdata;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
@ -48,12 +48,14 @@ public class BodyBean {
|
|||
|
||||
private class BodyOptions {
|
||||
private Raw raw;
|
||||
|
||||
public BodyOptions() {
|
||||
this.raw = new Raw();
|
||||
}
|
||||
|
||||
private class Raw {
|
||||
private String language;
|
||||
|
||||
Raw() {
|
||||
this.language = "json";
|
||||
}
|
||||
|
|
|
@ -10,10 +10,7 @@ import com.power.doc.utils.DocUtil;
|
|||
import com.power.doc.utils.JavaClassValidateUtil;
|
||||
import com.thoughtworks.qdox.model.JavaClass;
|
||||
import com.thoughtworks.qdox.model.JavaMethod;
|
||||
import com.thoughtworks.qdox.model.JavaType;
|
||||
import com.thoughtworks.qdox.model.JavaTypeVariable;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
|
|
@ -4,7 +4,9 @@ import com.power.common.util.StringUtil;
|
|||
import com.thoughtworks.qdox.model.JavaClass;
|
||||
import com.thoughtworks.qdox.model.JavaField;
|
||||
import com.thoughtworks.qdox.model.JavaMethod;
|
||||
import com.thoughtworks.qdox.model.JavaType;
|
||||
import com.thoughtworks.qdox.model.impl.DefaultJavaField;
|
||||
import com.thoughtworks.qdox.model.impl.DefaultJavaParameterizedType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -117,4 +119,33 @@ public class JavaClassUtil {
|
|||
}
|
||||
return className;
|
||||
}
|
||||
|
||||
/**
|
||||
* get Actual type
|
||||
*
|
||||
* @param javaClass JavaClass
|
||||
* @return JavaClass
|
||||
*/
|
||||
public static JavaClass getActualType(JavaClass javaClass) {
|
||||
return getActualTypes(javaClass).get(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* get Actual type list
|
||||
*
|
||||
* @param javaClass JavaClass
|
||||
* @return JavaClass
|
||||
*/
|
||||
public static List<JavaClass> getActualTypes(JavaClass javaClass) {
|
||||
if (null == javaClass) {
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
List<JavaClass> javaClassList = new ArrayList<>();
|
||||
List<JavaType> actualTypes = ((DefaultJavaParameterizedType) javaClass).getActualTypeArguments();
|
||||
actualTypes.forEach(javaType -> {
|
||||
JavaClass actualClass = (JavaClass) javaType;
|
||||
javaClassList.add(actualClass);
|
||||
});
|
||||
return javaClassList;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ public class JavaClassValidateUtil {
|
|||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if it is the basic data type of json data
|
||||
*
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
package com.power.doc;
|
||||
|
||||
import com.power.common.util.DateTimeUtil;
|
||||
import com.power.common.util.StringUtil;
|
||||
import com.power.doc.builder.HtmlApiDocBuilder;
|
||||
import com.power.doc.builder.PostmanJsonBuilder;
|
||||
import com.power.doc.enums.OrderEnum;
|
||||
import com.power.doc.model.*;
|
||||
import com.power.doc.model.ApiConfig;
|
||||
import com.power.doc.model.ApiDataDictionary;
|
||||
import com.power.doc.model.RevisionLog;
|
||||
import com.power.doc.model.SourceCodePath;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
|
@ -67,7 +65,6 @@ public class ApiDocTest {
|
|||
);
|
||||
|
||||
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
// ApiDocBuilder.builderControllersApi(config);
|
||||
//HtmlApiDocBuilder.builderControllersApi(config);
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.power.doc.util;
|
|||
|
||||
import com.power.doc.constants.DocGlobalConstants;
|
||||
import com.power.doc.constants.DocLanguage;
|
||||
import com.power.doc.utils.DocClassUtil;
|
||||
import com.power.doc.utils.DocUtil;
|
||||
import org.junit.Test;
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.power.doc.util;
|
||||
|
||||
import com.power.common.util.FileUtil;
|
||||
import com.power.common.util.MD6Util;
|
||||
import com.power.doc.utils.MarkDownUtil;
|
||||
import org.apache.commons.codec.digest.Md5Crypt;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue