|
|
@ -2,6 +2,7 @@ package com.gitee.sop.gatewaycommon.result; |
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSON; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONValidator; |
|
|
|
import com.alibaba.fastjson.parser.Feature; |
|
|
|
import com.alibaba.fastjson.parser.Feature; |
|
|
|
import com.gitee.sop.gatewaycommon.bean.ApiConfig; |
|
|
|
import com.gitee.sop.gatewaycommon.bean.ApiConfig; |
|
|
|
import com.gitee.sop.gatewaycommon.bean.DefaultRouteInterceptorContext; |
|
|
|
import com.gitee.sop.gatewaycommon.bean.DefaultRouteInterceptorContext; |
|
|
@ -41,9 +42,11 @@ public abstract class BaseExecutorAdapter<T, R> implements ResultExecutor<T, R> |
|
|
|
|
|
|
|
|
|
|
|
private static final String GATEWAY_CODE_NAME = "code"; |
|
|
|
private static final String GATEWAY_CODE_NAME = "code"; |
|
|
|
private static final String GATEWAY_MSG_NAME = "msg"; |
|
|
|
private static final String GATEWAY_MSG_NAME = "msg"; |
|
|
|
|
|
|
|
private static final String GATEWAY_RESPONSE_NAME = "response"; |
|
|
|
private static final String ARRAY_START = "["; |
|
|
|
private static final String ARRAY_START = "["; |
|
|
|
private static final String ARRAY_END = "]"; |
|
|
|
private static final String ARRAY_END = "]"; |
|
|
|
private static final String ROOT_JSON = "{'items':%s}".replace("'", "\""); |
|
|
|
private static final String ROOT_JSON = "{'items':%s}".replace("'", "\""); |
|
|
|
|
|
|
|
private static final String SINGLE_ROOT_JSON = "{'single_response':%s}".replace("'", "\""); |
|
|
|
|
|
|
|
|
|
|
|
static { |
|
|
|
static { |
|
|
|
HTTP_STATUS_ERROR_ENUM_MAP.put(HttpStatus.OK.value(), ErrorEnum.SUCCESS); |
|
|
|
HTTP_STATUS_ERROR_ENUM_MAP.put(HttpStatus.OK.value(), ErrorEnum.SUCCESS); |
|
|
@ -205,6 +208,10 @@ public abstract class BaseExecutorAdapter<T, R> implements ResultExecutor<T, R> |
|
|
|
if (serviceResult.startsWith(ARRAY_START) && serviceResult.endsWith(ARRAY_END)) { |
|
|
|
if (serviceResult.startsWith(ARRAY_START) && serviceResult.endsWith(ARRAY_END)) { |
|
|
|
return String.format(ROOT_JSON, serviceResult); |
|
|
|
return String.format(ROOT_JSON, serviceResult); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 如果直接返回单个数据类型,需进行包装,变成:{"single_response": ...}
|
|
|
|
|
|
|
|
if (!JSONValidator.from(serviceResult).validate() || JSONValidator.from(serviceResult).getType() == JSONValidator.Type.Value) { |
|
|
|
|
|
|
|
return String.format(SINGLE_ROOT_JSON, new StringBuilder(serviceResult).insert(0, "\"").append("\"").toString()); |
|
|
|
|
|
|
|
} |
|
|
|
return serviceResult; |
|
|
|
return serviceResult; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|