持久化保存ResponseBody配置

This commit is contained in:
mxd
2021-10-16 10:53:06 +08:00
parent ec44e63d5b
commit ecacfa64af
5 changed files with 36 additions and 8 deletions

View File

@@ -128,6 +128,13 @@ public class MagicAPIProperties {
*/
private int compileCacheSize = 500;
/**
* 是否持久化保存ResponseBody
*
* @since 1.5.3
*/
private boolean persistenceResponseBody = true;
@NestedConfigurationProperty
private SecurityConfig securityConfig = new SecurityConfig();
@@ -409,4 +416,12 @@ public class MagicAPIProperties {
public void setCompileCacheSize(int compileCacheSize) {
this.compileCacheSize = compileCacheSize;
}
public boolean isPersistenceResponseBody() {
return persistenceResponseBody;
}
public void setPersistenceResponseBody(boolean persistenceResponseBody) {
this.persistenceResponseBody = persistenceResponseBody;
}
}

View File

@@ -57,6 +57,7 @@ public class MagicSwaggerConfiguration {
SwaggerProvider swaggerProvider = new SwaggerProvider();
swaggerProvider.setGroupServiceProvider(groupServiceProvider);
swaggerProvider.setMappingHandlerMapping(handlerMapping);
swaggerProvider.setPersistenceResponseBody(properties.isPersistenceResponseBody());
SwaggerEntity.License license = new SwaggerEntity.License("MIT", "https://gitee.com/ssssssss-team/magic-api/blob/master/LICENSE");
swaggerProvider.setInfo(new SwaggerEntity.Info(config.getDescription(), config.getVersion(), config.getTitle(), license, config.getConcat()));
swaggerProvider.setBasePath(servletContext.getContextPath());

View File

@@ -40,6 +40,7 @@ public class SwaggerProvider {
private String basePath;
private GroupServiceProvider groupServiceProvider;
private SwaggerEntity.Info info;
private boolean persistenceResponseBody;
public void setMappingHandlerMapping(MappingHandlerMapping mappingHandlerMapping) {
this.mappingHandlerMapping = mappingHandlerMapping;
@@ -57,6 +58,10 @@ public class SwaggerProvider {
this.basePath = basePath;
}
public void setPersistenceResponseBody(boolean persistenceResponseBody) {
this.persistenceResponseBody = persistenceResponseBody;
}
@ResponseBody
public SwaggerEntity swaggerJson() {
this.DEFINITION_MAP.clear();
@@ -78,16 +83,18 @@ public class SwaggerProvider {
if (hasBody && baseDefinition != null) {
doProcessDefinition(baseDefinition, info, "root_", "request", 0);
}
baseDefinition = info.getResponseBodyDefinition();
parameters.forEach(path::addParameter);
if (baseDefinition != null) {
Map responseMap = parseResponse(info);
if (!responseMap.isEmpty()) {
path.setResponses(responseMap);
doProcessDefinition(baseDefinition, info, "root_" + baseDefinition.getName(), "response", 0);
if (this.persistenceResponseBody) {
baseDefinition = info.getResponseBodyDefinition();
if (baseDefinition != null) {
Map responseMap = parseResponse(info);
if (!responseMap.isEmpty()) {
path.setResponses(responseMap);
doProcessDefinition(baseDefinition, info, "root_" + baseDefinition.getName(), "response", 0);
}
} else {
path.addResponse("200", mapper.readValue(Objects.toString(info.getResponseBody(), BODY_EMPTY), Object.class));
}
} else {
path.addResponse("200", mapper.readValue(Objects.toString(info.getResponseBody(), BODY_EMPTY), Object.class));
}
} catch (Exception ignored) {

View File

@@ -448,6 +448,10 @@ export default {
saveObj.headers = saveObj.headers.filter(it => it.name)
saveObj.option = JSON.stringify(saveObj.option)
// saveObj.requestHeader = JSON.stringify(saveObj.requestHeader.filter(it => it.name))
if (contants.config.persistenceResponseBody === false) {
delete saveObj.responseBody
delete saveObj.responseBodyDefinition
}
return request.send('/save', JSON.stringify(saveObj), {
method: 'post',
headers: {

View File

@@ -6,6 +6,7 @@ const bus = new Vue()
try {
let element = document.createElement("script");
element.src = "https://s4.cnzz.com/z_stat.php?id=1280031557&web_id=1280031557";
element.setAttribute('async', true);
let s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(element, s);
element.onload = element.onreadystatechange = function () {