0
我需要确定是否正在请求API应该由特定过滤器进行过滤?根据请求url或路由服务ID处理过滤器的优雅方式
常识是通过斜杠拆分请求url以获得准确的接口,然后将其与URL列表预设进行比较,有没有其他方法?
我需要确定是否正在请求API应该由特定过滤器进行过滤?根据请求url或路由服务ID处理过滤器的优雅方式
常识是通过斜杠拆分请求url以获得准确的接口,然后将其与URL列表预设进行比较,有没有其他方法?
您可以在您的过滤器中使用serviceId
属性RequestContext
并在您的过滤器的shouldFilter()
方法中检查它,如下所示。如果您的过滤器为pre
过滤器,则其过滤器顺序的值必须大于PreDecorationFilater
的值。目前,它是你应该知道5.
@Override
public int filterOrder() {
return 10;
}
@Override
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
if ((ctx.get("serviceId") != null) && ctx.get("serviceId").equals("service_id_that_you_want_to_handle")) {
return true;
}
return false;
}
的一件事是,如果你指定的URL本身,而不是使用灵光,你应该在RequestContext
而不是serviceId
使用proxy
属性。
我不知道'代理',但你应该使用'RequestContext.getRouteHost()'方法完整的URL而不是'serviceId'。 – spencergibb