mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
5.0
This commit is contained in:
@@ -3,6 +3,7 @@ package com.gitee.sop.storyweb.open.resp;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 六如
|
* @author 六如
|
||||||
@@ -15,4 +16,6 @@ public class StoryResponse implements Serializable {
|
|||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
// 日期格式要用Date,暂不支持LocalDateTime
|
||||||
|
private Date addTime = new Date();
|
||||||
}
|
}
|
||||||
|
@@ -1,11 +1,12 @@
|
|||||||
package com.gitee.sop.gateway.config;
|
package com.gitee.sop.gateway.config;
|
||||||
|
|
||||||
import com.gitee.sop.gateway.service.ParamExecutor;
|
import com.gitee.sop.gateway.service.ParamExecutor;
|
||||||
import com.gitee.sop.gateway.service.ParamExecutorImpl;
|
import com.gitee.sop.gateway.service.impl.ParamExecutorImpl;
|
||||||
import com.gitee.sop.gateway.service.RouteService;
|
import com.gitee.sop.gateway.service.RouteService;
|
||||||
import com.gitee.sop.gateway.service.RouteServiceImpl;
|
import com.gitee.sop.gateway.service.impl.RouteServiceImpl;
|
||||||
import com.gitee.sop.gateway.service.Serde;
|
import com.gitee.sop.gateway.service.Serde;
|
||||||
import com.gitee.sop.gateway.service.SerdeImpl;
|
import com.gitee.sop.gateway.service.impl.SerdeGsonImpl;
|
||||||
|
import com.gitee.sop.gateway.service.impl.SerdeImpl;
|
||||||
import com.gitee.sop.gateway.service.interceptor.internal.ResultRouteInterceptor;
|
import com.gitee.sop.gateway.service.interceptor.internal.ResultRouteInterceptor;
|
||||||
import com.gitee.sop.gateway.service.manager.ApiManager;
|
import com.gitee.sop.gateway.service.manager.ApiManager;
|
||||||
import com.gitee.sop.gateway.service.manager.IsvApiPermissionManager;
|
import com.gitee.sop.gateway.service.manager.IsvApiPermissionManager;
|
||||||
@@ -27,7 +28,6 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import java.util.Collections;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author 六如
|
* @author 六如
|
||||||
@@ -84,6 +84,20 @@ public class GatewayConfig {
|
|||||||
return new RedisIsvApiPermissionManagerImpl();
|
return new RedisIsvApiPermissionManagerImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 默认使用fastjson2序列化
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(value = "gateway.serialize.json-formatter", havingValue = "fastjson2", matchIfMissing = true)
|
||||||
|
public Serde serdeFastjson2() {
|
||||||
|
log.info("[init]使用fastjson2序列化");
|
||||||
|
return new SerdeImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@ConditionalOnProperty(value = "gateway.serialize.json-formatter", havingValue = "gson")
|
||||||
|
public Serde serdeGson() {
|
||||||
|
log.info("[init]使用gson序列化");
|
||||||
|
return new SerdeGsonImpl();
|
||||||
|
}
|
||||||
|
|
||||||
// DEFAULT ROUTE INTERCEPTOR
|
// DEFAULT ROUTE INTERCEPTOR
|
||||||
@Bean
|
@Bean
|
||||||
|
@@ -1,24 +0,0 @@
|
|||||||
package com.gitee.sop.gateway.service;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
||||||
import com.gitee.sop.gateway.util.JsonUtil;
|
|
||||||
import com.gitee.sop.gateway.util.XmlUtil;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author 六如
|
|
||||||
*/
|
|
||||||
public class SerdeImpl implements Serde{
|
|
||||||
@Override
|
|
||||||
public String toJSONString(Object object) {
|
|
||||||
return JsonUtil.toJSONString(object);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toXml(Object object) {
|
|
||||||
try {
|
|
||||||
return XmlUtil.toXml(object);
|
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,4 +1,4 @@
|
|||||||
package com.gitee.sop.gateway.service;
|
package com.gitee.sop.gateway.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
@@ -9,10 +9,10 @@ import com.gitee.sop.gateway.request.ApiRequestContext;
|
|||||||
import com.gitee.sop.gateway.request.RequestFormatEnum;
|
import com.gitee.sop.gateway.request.RequestFormatEnum;
|
||||||
import com.gitee.sop.gateway.request.UploadContext;
|
import com.gitee.sop.gateway.request.UploadContext;
|
||||||
import com.gitee.sop.gateway.response.Response;
|
import com.gitee.sop.gateway.response.Response;
|
||||||
import com.gitee.sop.gateway.util.JsonUtil;
|
import com.gitee.sop.gateway.service.ParamExecutor;
|
||||||
|
import com.gitee.sop.gateway.service.Serde;
|
||||||
import com.gitee.sop.gateway.util.RequestUtil;
|
import com.gitee.sop.gateway.util.RequestUtil;
|
||||||
import com.gitee.sop.gateway.util.ResponseUtil;
|
import com.gitee.sop.gateway.util.ResponseUtil;
|
||||||
import com.gitee.sop.gateway.util.XmlUtil;
|
|
||||||
import com.gitee.sop.support.dto.FileData;
|
import com.gitee.sop.support.dto.FileData;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
@@ -1,4 +1,4 @@
|
|||||||
package com.gitee.sop.gateway.service;
|
package com.gitee.sop.gateway.service.impl;
|
||||||
|
|
||||||
import com.gitee.sop.gateway.common.ApiInfoDTO;
|
import com.gitee.sop.gateway.common.ApiInfoDTO;
|
||||||
import com.gitee.sop.gateway.common.enums.YesOrNoEnum;
|
import com.gitee.sop.gateway.common.enums.YesOrNoEnum;
|
||||||
@@ -8,6 +8,7 @@ import com.gitee.sop.gateway.response.ApiResponse;
|
|||||||
import com.gitee.sop.gateway.response.ApiResponseLower;
|
import com.gitee.sop.gateway.response.ApiResponseLower;
|
||||||
import com.gitee.sop.gateway.response.NoCommonResponse;
|
import com.gitee.sop.gateway.response.NoCommonResponse;
|
||||||
import com.gitee.sop.gateway.response.Response;
|
import com.gitee.sop.gateway.response.Response;
|
||||||
|
import com.gitee.sop.gateway.service.ResultWrapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
@@ -1,4 +1,4 @@
|
|||||||
package com.gitee.sop.gateway.service;
|
package com.gitee.sop.gateway.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
@@ -12,6 +12,9 @@ import com.gitee.sop.gateway.request.ApiRequestContext;
|
|||||||
import com.gitee.sop.gateway.request.UploadContext;
|
import com.gitee.sop.gateway.request.UploadContext;
|
||||||
import com.gitee.sop.gateway.response.ApiResponse;
|
import com.gitee.sop.gateway.response.ApiResponse;
|
||||||
import com.gitee.sop.gateway.response.Response;
|
import com.gitee.sop.gateway.response.Response;
|
||||||
|
import com.gitee.sop.gateway.service.GenericServiceInvoker;
|
||||||
|
import com.gitee.sop.gateway.service.ResultWrapper;
|
||||||
|
import com.gitee.sop.gateway.service.RouteService;
|
||||||
import com.gitee.sop.gateway.service.interceptor.RouteInterceptor;
|
import com.gitee.sop.gateway.service.interceptor.RouteInterceptor;
|
||||||
import com.gitee.sop.gateway.service.validate.Validator;
|
import com.gitee.sop.gateway.service.validate.Validator;
|
||||||
import com.gitee.sop.gateway.util.ClassUtil;
|
import com.gitee.sop.gateway.util.ClassUtil;
|
@@ -0,0 +1,22 @@
|
|||||||
|
package com.gitee.sop.gateway.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.nacos.shaded.com.google.gson.Gson;
|
||||||
|
import com.alibaba.nacos.shaded.com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 六如
|
||||||
|
*/
|
||||||
|
public class SerdeGsonImpl extends SerdeImpl {
|
||||||
|
|
||||||
|
Gson gson;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toJSONString(Object object) {
|
||||||
|
return gson.toJson(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doInit() {
|
||||||
|
gson = new GsonBuilder().setDateFormat(dateFormat).create();
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,47 @@
|
|||||||
|
package com.gitee.sop.gateway.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.alibaba.fastjson2.JSONWriter;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.gitee.sop.gateway.service.Serde;
|
||||||
|
import com.gitee.sop.gateway.util.XmlUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 六如
|
||||||
|
*/
|
||||||
|
public class SerdeImpl implements Serde {
|
||||||
|
|
||||||
|
static JSONWriter.Context context;
|
||||||
|
|
||||||
|
@Value("${gateway.serialize.date-format}")
|
||||||
|
protected String dateFormat;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toJSONString(Object object) {
|
||||||
|
return JSON.toJSONString(object, context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toXml(Object object) {
|
||||||
|
try {
|
||||||
|
return XmlUtil.toXml(object);
|
||||||
|
} catch (JsonProcessingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void init() {
|
||||||
|
context = new JSONWriter.Context();
|
||||||
|
context.setDateFormat(dateFormat);
|
||||||
|
|
||||||
|
this.doInit();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void doInit() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@@ -15,6 +15,10 @@ gateway.manager.isv=${gateway.manager.cache-type}
|
|||||||
gateway.manager.secret=${gateway.manager.cache-type}
|
gateway.manager.secret=${gateway.manager.cache-type}
|
||||||
# isv api permission manager,local/redis
|
# isv api permission manager,local/redis
|
||||||
gateway.manager.isv-api-perm=${gateway.manager.cache-type}
|
gateway.manager.isv-api-perm=${gateway.manager.cache-type}
|
||||||
|
# json serialize formatter: fastjson2/gson
|
||||||
|
gateway.serialize.json-formatter=fastjson2
|
||||||
|
# serialize date format
|
||||||
|
gateway.serialize.date-format=yyyy-MM-dd HH:mm:ss
|
||||||
|
|
||||||
####### parameter name config #######
|
####### parameter name config #######
|
||||||
api.app-id-name=app_id
|
api.app-id-name=app_id
|
||||||
|
Reference in New Issue
Block a user