Skip to content

Commit

Permalink
新增requestBodyAdvice配置
Browse files Browse the repository at this point in the history
  • Loading branch information
netdied committed Apr 25, 2021
1 parent ecc4e09 commit bea4c1a
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 19 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
2. 修复配置responseBodyAdvice后,controller中void方法返回显示错误。
3. 修复往torna推送漏掉pathParams的问题。
4. 修复非json请求集合中绑定枚举强制检查错误的问题。
5. 新增requestAdvice支持,可以实现请求参数包装
5. 新增requestBodyAdvice支持,可以实现请求参数包装。
6. 修复泛型为List数据时,类型为object问题。
7. 修复customFiled为继承参数时配置失效问题。
#### 版本号:2.1.3
- 更新日期: 2020-04-11
- 更新内容:
Expand Down
15 changes: 7 additions & 8 deletions src/main/java/com/power/doc/builder/ProjectDocConfigBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ public ProjectDocConfigBuilder(ApiConfig apiConfig, JavaProjectBuilder javaProje
this.initCustomRequestFieldsMap(apiConfig);
this.initReplaceClassMap(apiConfig);
this.initConstants(apiConfig);
this.checkResponseBodyAdvice(apiConfig);
this.checkBodyAdvice(apiConfig.getRequestBodyAdvice());
this.checkBodyAdvice(apiConfig.getResponseBodyAdvice());
}

public JavaClass getClassByName(String simpleName) {
Expand Down Expand Up @@ -179,20 +180,18 @@ private void initConstants(ApiConfig config) {
}
}

private void checkResponseBodyAdvice(ApiConfig config) {
ResponseBodyAdvice responseBodyAdvice = config.getResponseBodyAdvice();
if (Objects.nonNull(responseBodyAdvice) && StringUtil.isNotEmpty(responseBodyAdvice.getClassName())) {
if (Objects.nonNull(responseBodyAdvice.getWrapperClass())) {
private void checkBodyAdvice(BodyAdvice bodyAdvice) {
if (Objects.nonNull(bodyAdvice) && StringUtil.isNotEmpty(bodyAdvice.getClassName())) {
if (Objects.nonNull(bodyAdvice.getWrapperClass())) {
return;
}
try {
Class.forName(responseBodyAdvice.getClassName());
Class.forName(bodyAdvice.getClassName());
} catch (ClassNotFoundException e) {
throw new RuntimeException("Can't find class " + responseBodyAdvice.getClassName() + " for ResponseBodyAdvice.");
throw new RuntimeException("Can't find class " + bodyAdvice.getClassName() + " for ResponseBodyAdvice.");
}
}
}

/**
* 设置高亮样式
*/
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/power/doc/constants/DocTags.java
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,6 @@ public interface DocTags {
* Ignore ResponseBodyAdvice
*/
String IGNORE_RESPONSE_BODY_ADVICE = "ignoreResponseBodyAdvice";

String IGNORE_REQUEST_BODY_ADVICE = "ignoreRequestBodyAdvice";
}
16 changes: 13 additions & 3 deletions src/main/java/com/power/doc/model/ApiConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,9 @@ public class ApiConfig {
* Support Spring MVC ResponseBodyAdvice
* @since 1.9.8
*/
private ResponseBodyAdvice responseBodyAdvice;
private BodyAdvice responseBodyAdvice;

private BodyAdvice requestBodyAdvice;

private String style;

Expand Down Expand Up @@ -718,14 +720,22 @@ public void setDisplayActualType(boolean displayActualType) {
this.displayActualType = displayActualType;
}

public ResponseBodyAdvice getResponseBodyAdvice() {
public BodyAdvice getResponseBodyAdvice() {
return responseBodyAdvice;
}

public void setResponseBodyAdvice(ResponseBodyAdvice responseBodyAdvice) {
public void setResponseBodyAdvice(BodyAdvice responseBodyAdvice) {
this.responseBodyAdvice = responseBodyAdvice;
}

public BodyAdvice getRequestBodyAdvice() {
return requestBodyAdvice;
}

public void setRequestBodyAdvice(BodyAdvice requestBodyAdvice) {
this.requestBodyAdvice = requestBodyAdvice;
}

public String getStyle() {
return style;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,23 @@
* @since 1.9.8
* @author yu 2020/11/5.
*/
public class ResponseBodyAdvice {
public class BodyAdvice {

private String className;

private Class wrapperClass;

private String dataField;

public static ResponseBodyAdvice builder(){
return new ResponseBodyAdvice();
public static BodyAdvice builder(){
return new BodyAdvice();
}

public String getClassName() {
return className;
}

public ResponseBodyAdvice setClassName(String className) {
public BodyAdvice setClassName(String className) {
this.className = className;
return this;
}
Expand All @@ -51,7 +51,7 @@ public String getDataField() {
return dataField;
}

public ResponseBodyAdvice setDataField(String dataField) {
public BodyAdvice setDataField(String dataField) {
this.dataField = dataField;
return this;
}
Expand All @@ -60,7 +60,7 @@ public Class getWrapperClass() {
return wrapperClass;
}

public ResponseBodyAdvice setWrapperClass(Class wrapperClass) {
public BodyAdvice setWrapperClass(Class wrapperClass) {
this.wrapperClass = wrapperClass;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

import static com.power.doc.constants.DocGlobalConstants.FILE_CONTENT_TYPE;
import static com.power.doc.constants.DocGlobalConstants.JSON_CONTENT_TYPE;
import static com.power.doc.constants.DocTags.IGNORE;
import static com.power.doc.constants.DocTags.*;

/**
* @author yu 2019/12/21.
Expand Down Expand Up @@ -365,6 +365,19 @@ private ApiRequestExample buildReqJson(DocJavaMethod javaMethod, ApiMethodDoc ap
}
if (SpringMvcAnnotations.REQUEST_BODY.equals(annotationName) || DocGlobalConstants.REQUEST_BODY_FULLY.equals(annotationName)) {
apiMethodDoc.setContentType(JSON_CONTENT_TYPE);
if (Objects.nonNull(configBuilder.getApiConfig().getRequestBodyAdvice())
&& Objects.isNull(method.getTagByName(IGNORE_REQUEST_BODY_ADVICE))) {
String requestBodyAdvice = configBuilder.getApiConfig().getRequestBodyAdvice().getClassName();
gicTypeName = new StringBuffer()
.append(requestBodyAdvice)
.append("<")
.append(gicTypeName).append(">").toString();
typeName = new StringBuffer()
.append(requestBodyAdvice)
.append("<")
.append(typeName).append(">").toString();
}

if (JavaClassValidateUtil.isPrimitive(simpleTypeName)) {
StringBuilder builder = new StringBuilder();
builder.append("{\"")
Expand Down

0 comments on commit bea4c1a

Please sign in to comment.