This commit is contained in:
六如
2024-11-10 23:17:17 +08:00
parent 0498d0f7b5
commit 1ee4b2384c
36 changed files with 178 additions and 382 deletions

View File

@@ -18,11 +18,10 @@ import com.gitee.sop.gateway.service.RouteService;
import com.gitee.sop.gateway.service.interceptor.RouteInterceptor;
import com.gitee.sop.gateway.service.validate.Validator;
import com.gitee.sop.gateway.util.ClassUtil;
import com.gitee.sop.support.constants.AttachmentNames;
import com.gitee.sop.support.dto.CommonFileData;
import com.gitee.sop.support.dto.DefaultOpenRequest;
import com.gitee.sop.support.context.DefaultOpenContext;
import com.gitee.sop.support.dto.FileData;
import com.gitee.sop.support.dto.OpenRequest;
import com.gitee.sop.support.context.OpenContext;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -33,8 +32,6 @@ import java.util.Optional;
import javax.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.ClassUtils;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.dubbo.rpc.RpcContextAttachment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
@@ -84,7 +81,6 @@ public class RouteServiceImpl implements RouteService {
}
protected Object doRoute(ApiRequestContext apiRequestContext, ApiInfoDTO apiInfo) {
setAttachment(apiRequestContext);
String paramInfo = apiInfo.getParamInfo();
List<ParamInfoDTO> paramInfoList = JSON.parseArray(paramInfo, ParamInfoDTO.class);
return genericServiceInvoker.invoke(
@@ -95,19 +91,6 @@ public class RouteServiceImpl implements RouteService {
);
}
protected void setAttachment(ApiRequestContext apiRequestContext) {
ApiRequest apiRequest = apiRequestContext.getApiRequest();
RpcContextAttachment clientAttachment = RpcContext.getClientAttachment();
clientAttachment.setAttachment(AttachmentNames.APP_ID, apiRequest.getAppId());
clientAttachment.setAttachment(AttachmentNames.API_NAME, apiRequest.getMethod());
clientAttachment.setAttachment(AttachmentNames.VERSION, apiRequest.getVersion());
clientAttachment.setAttachment(AttachmentNames.APP_AUTH_TOKEN, apiRequest.getAppAuthToken());
clientAttachment.setAttachment(AttachmentNames.NOTIFY_URL, apiRequest.getNotifyUrl());
clientAttachment.setAttachment(AttachmentNames.CLIENT_IP, apiRequestContext.getIp());
clientAttachment.setAttachment(AttachmentNames.TRACE_ID, apiRequestContext.getTraceId());
clientAttachment.setAttachment(AttachmentNames.LOCALE, apiRequestContext.getLocale().toLanguageTag());
}
protected void doPreRoute(ApiRequestContext apiRequestContext, ApiInfoDTO apiInfoDTO) {
for (RouteInterceptor routeInterceptor : routeInterceptors) {
routeInterceptor.preRoute(apiRequestContext, apiInfoDTO);
@@ -144,8 +127,8 @@ public class RouteServiceImpl implements RouteService {
String actualType = paramInfoDTO.getActualType();
// 上下文
if (Objects.equals(type, OpenRequest.class.getName())) {
OpenRequest openRequest = buildOpenRequest(apiRequestContext);
if (Objects.equals(type, OpenContext.class.getName())) {
OpenContext openRequest = buildOpenContext(apiRequestContext);
params.add(openRequest);
} else if (Objects.equals(type, FileData.class.getName()) || Objects.equals(actualType, FileData.class.getName())) {
// 处理文件上传
@@ -174,9 +157,9 @@ public class RouteServiceImpl implements RouteService {
return params.toArray(new Object[0]);
}
protected OpenRequest buildOpenRequest(ApiRequestContext apiRequestContext) {
protected OpenContext buildOpenContext(ApiRequestContext apiRequestContext) {
ApiRequest apiRequest = apiRequestContext.getApiRequest();
DefaultOpenRequest defaultOpenRequest = new DefaultOpenRequest();
DefaultOpenContext defaultOpenRequest = new DefaultOpenContext();
defaultOpenRequest.setAppId(apiRequest.getAppId());
defaultOpenRequest.setApiName(apiRequest.getMethod());
defaultOpenRequest.setVersion(apiRequest.getVersion());