change version, update PostmanBuilder method name

This commit is contained in:
oppofind 2020-01-11 19:41:31 +08:00
parent d3a8655b97
commit 5b0500d55a
26 changed files with 138 additions and 109 deletions

View File

@ -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>

View File

@ -32,7 +32,8 @@ public class AdocDocBuilder {
}
/**
* Used for plugin
* Only for smart-doc-maven-plugin.
*
* @param config ApiConfig
* @param javaProjectBuilder ProjectDocConfigBuilder
*/

View File

@ -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 {

View File

@ -31,7 +31,8 @@ public class ApiDocBuilder {
}
/**
* Used for plugin
* Only for smart-doc-maven-plugin.
*
* @param config ApiConfig
* @param javaProjectBuilder ProjectDocConfigBuilder
*/

View File

@ -43,7 +43,8 @@ public class HtmlApiDocBuilder {
}
/**
* Used for plugin
* Only for smart-doc-maven-plugin.
*
* @param config ApiConfig
* @param javaProjectBuilder ProjectDocConfigBuilder
*/

View File

@ -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);
}
}

View File

@ -2,6 +2,7 @@ package com.power.doc.constants;
/**
* http methods
*
* @author yu 2019/11/21.
*/
public enum Methods {

View File

@ -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) {

View File

@ -22,6 +22,7 @@ public class SpringMVCRequestHeaderHandler {
/**
* handle Spring MVC Request Header
*
* @param method JavaMethod
* @return list of ApiReqHeader
*/

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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";

View File

@ -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";
}

View File

@ -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;

View File

@ -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;
}
}

View File

@ -32,6 +32,7 @@ public class JavaClassValidateUtil {
return false;
}
}
/**
* Check if it is the basic data type of json data
*

View File

@ -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);

View File

@ -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;

View File

@ -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;
/**