|
@@ -4,15 +4,14 @@ import com.alibaba.cola.domain.Entity;
|
|
|
import com.alibaba.cola.exception.BizException;
|
|
|
import com.hrsk.cloud.eg.domain.api.common.ApiPayloadTypeEnum;
|
|
|
import com.hrsk.cloud.eg.domain.api.resolver.payload.ApiPayloadResolverManage;
|
|
|
+import com.hrsk.cloud.eg.vo.response.DataVo;
|
|
|
+import com.hrsk.cloud.eg.vo.response.DefaultResponseVo;
|
|
|
import lombok.Getter;
|
|
|
import lombok.ToString;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
-import org.springframework.util.LinkedMultiValueMap;
|
|
|
-import org.springframework.util.MultiValueMap;
|
|
|
-
|
|
|
import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
|
|
@@ -21,6 +20,7 @@ import java.util.Objects;
|
|
|
* @create: 2024-07-26 17:59
|
|
|
* @description: HTTP API
|
|
|
**/
|
|
|
+@Slf4j
|
|
|
@ToString
|
|
|
@Entity
|
|
|
public class HttpApi implements Api {
|
|
@@ -87,6 +87,19 @@ public class HttpApi implements Api {
|
|
|
loadBody(context);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @description: 加载返回值配置
|
|
|
+ * @author zhangyy
|
|
|
+ * @date 2024/9/2 15:58
|
|
|
+ * @version 1.0
|
|
|
+ */
|
|
|
+ public Object loadResult(HttpApiConfig config,Object output){
|
|
|
+ this.httpApiConfig = config;
|
|
|
+ ApiResult context = new ApiResult(output);
|
|
|
+ return doLoadResult(context);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 加载path,包含path和search
|
|
|
* @param context 上下文
|
|
@@ -130,6 +143,27 @@ public class HttpApi implements Api {
|
|
|
throw new BizException("不支持的请求体类型!");
|
|
|
}
|
|
|
}
|
|
|
+ /**
|
|
|
+ * @description: 解析返回值
|
|
|
+ * @param:
|
|
|
+ * @return:
|
|
|
+ * @author zhangyy
|
|
|
+ * @date: 2024/9/2 16:01
|
|
|
+ */
|
|
|
+ private Object doLoadResult(ApiResult output) {
|
|
|
+ Object result = null;
|
|
|
+ try {
|
|
|
+ if(StringUtils.equals(httpApiConfig.getContentType(), ApiPayloadTypeEnum.APPLICATION_JSON.getCode())){
|
|
|
+ result=Objects.toString(ApiPayloadResolverManage.getInstance().resolve(httpApiConfig.getContentType(),httpApiConfig.getResult(),output),"");
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ //下面这种方式是默认和统一的返回
|
|
|
+ log.error("Api 统一返回值解析异常",e);
|
|
|
+ return DataVo.fail();
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|