diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java index be9f0b68..dcdbe855 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java @@ -22,4 +22,9 @@ public class GatewayParamBuilder extends BaseParamBuilder { public String getIP(ServerWebExchange ctx) { return ctx.getRequest().getRemoteAddress().getAddress().getHostAddress(); } + + @Override + public void setVersionInHeader(ServerWebExchange ctx, String headerName, String version) { + ctx.getRequest().getHeaders().add(headerName, version); + } } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/BaseParamBuilder.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/BaseParamBuilder.java index 36aa6458..daaddfac 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/BaseParamBuilder.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/BaseParamBuilder.java @@ -31,6 +31,14 @@ public abstract class BaseParamBuilder implements ParamBuilder { */ public abstract String getIP(T ctx); + /** + * 将版本号添加到header中 + * @param ctx 请求request + * @param headerName headerName + * @param version 版本号 + */ + public abstract void setVersionInHeader(T ctx, String headerName, String version); + @Override public ApiParam build(T ctx) { ApiParam apiParam = this.newApiParam(ctx); @@ -40,6 +48,7 @@ public abstract class BaseParamBuilder implements ParamBuilder { } this.initOtherProperty(apiParam); apiParam.setIp(this.getIP(ctx)); + this.setVersionInHeader(ctx, ParamNames.HEADER_VERSION_NAME, apiParam.fetchVersion()); return apiParam; } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParamNames.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParamNames.java index c375ee99..a1c65cbc 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParamNames.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParamNames.java @@ -45,5 +45,7 @@ public class ParamNames { /** 返回sign名称 */ public static String RESPONSE_SIGN_NAME = "sign"; + public static String HEADER_VERSION_NAME = "sop-version"; + } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParamBuilder.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParamBuilder.java index b219f8bf..c21f334f 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParamBuilder.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParamBuilder.java @@ -53,6 +53,11 @@ public class ZuulParamBuilder extends BaseParamBuilder { return RequestUtil.getIP(ctx.getRequest()); } + @Override + public void setVersionInHeader(RequestContext ctx, String headerName, String version) { + ctx.addZuulRequestHeader(headerName, version); + } + @Override protected ApiParam newApiParam(RequestContext ctx) { ApiParam apiParam = super.newApiParam(ctx); diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/ParamNames.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/ParamNames.java index d717f627..d2e18d00 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/ParamNames.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/bean/ParamNames.java @@ -45,5 +45,7 @@ public class ParamNames { /** 时间戳格式 */ public static String TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss"; + public static String HEADER_VERSION_NAME = "sop-version"; + } diff --git a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/mapping/ApiMappingRequestCondition.java b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/mapping/ApiMappingRequestCondition.java index fddad83f..e6a2739c 100644 --- a/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/mapping/ApiMappingRequestCondition.java +++ b/sop-common/sop-service-common/src/main/java/com/gitee/sop/servercommon/mapping/ApiMappingRequestCondition.java @@ -15,7 +15,6 @@ import javax.servlet.http.HttpServletRequest; @Slf4j public class ApiMappingRequestCondition implements RequestCondition { - public static final String UTF_8 = "UTF-8"; private String defaultVersion = ServiceConfig.getInstance().getDefaultVersion(); private ApiMappingInfo apiMappingInfo; @@ -46,7 +45,10 @@ public class ApiMappingRequestCondition implements RequestCondition