feat: support gateway context, feign eager-load support default value.

pull/1504/head
Haotian Zhang 7 months ago
parent 78a953dda3
commit b6edfa55f1

@ -111,7 +111,7 @@ public class ContextGatewayFilter implements GatewayFilter, Ordered {
StringBuilder matchPath = new StringBuilder(); StringBuilder matchPath = new StringBuilder();
StringBuilder realPath = new StringBuilder(); StringBuilder realPath = new StringBuilder();
int index = 2; int index = 2;
matchPath.append(request.getMethodValue()).append("|"); matchPath.append(request.getMethod().name()).append("|");
for (int i = index; i < pathSegments.length; i++) { for (int i = index; i < pathSegments.length; i++) {
matchPath.append("/").append(pathSegments[i]); matchPath.append("/").append(pathSegments[i]);
realPath.append("/").append(pathSegments[i]); realPath.append("/").append(pathSegments[i]);
@ -131,32 +131,36 @@ public class ContextGatewayFilter implements GatewayFilter, Ordered {
String[] pathSegments = path.split("/"); String[] pathSegments = path.split("/");
StringBuilder matchPath = new StringBuilder(); StringBuilder matchPath = new StringBuilder();
int index = 2; int index = 2;
matchPath.append(request.getMethodValue()).append("|"); matchPath.append(request.getMethod().name()).append("|");
Position namespacePosition = groupContext.getPredicate().getNamespace().getPosition(); Position namespacePosition = groupContext.getPredicate().getNamespace().getPosition();
switch (namespacePosition) { switch (namespacePosition) {
case QUERY: case QUERY:
matchPath.append("/").append(request.getQueryParams().getFirst(groupContext.getPredicate().getNamespace().getKey())); matchPath.append("/")
break; .append(request.getQueryParams().getFirst(groupContext.getPredicate().getNamespace().getKey()));
case HEADER: break;
matchPath.append("/").append(request.getHeaders().getFirst(groupContext.getPredicate().getNamespace().getKey())); case HEADER:
break; matchPath.append("/")
case PATH: .append(request.getHeaders().getFirst(groupContext.getPredicate().getNamespace().getKey()));
default: break;
matchPath.append("/").append(pathSegments[index++]); case PATH:
break; default:
matchPath.append("/").append(pathSegments[index++]);
break;
} }
Position servicePosition = groupContext.getPredicate().getService().getPosition(); Position servicePosition = groupContext.getPredicate().getService().getPosition();
switch (servicePosition) { switch (servicePosition) {
case QUERY: case QUERY:
matchPath.append("/").append(request.getQueryParams().getFirst(groupContext.getPredicate().getService().getKey())); matchPath.append("/")
break; .append(request.getQueryParams().getFirst(groupContext.getPredicate().getService().getKey()));
case HEADER: break;
matchPath.append("/").append(request.getHeaders().getFirst(groupContext.getPredicate().getService().getKey())); case HEADER:
break; matchPath.append("/")
case PATH: .append(request.getHeaders().getFirst(groupContext.getPredicate().getService().getKey()));
default: break;
matchPath.append("/").append(pathSegments[index++]); case PATH:
default:
matchPath.append("/").append(pathSegments[index++]);
} }
StringBuilder realPath = new StringBuilder(); StringBuilder realPath = new StringBuilder();
for (int i = index; i < pathSegments.length; i++) { for (int i = index; i < pathSegments.length; i++) {

Loading…
Cancel
Save