Spring Cloud Zuul 实现路由,Filter具体应用
Spring Cloud Zuul作为网关,可实现请求验证过滤,路由到具体服务的作用。
FilterChain先后顺序如下:
PreFilter验证请求信息;
RouteFilter控制路由逻辑;
PostFilter调用后台逻辑后,返回报文处理;
ErrorFilter错误处理。
举例:
比如请求订单接口,报文包括验证信息及具体请求参数。
通过配置路由到具体接口,通过参数调用接口,返回具体报文。
参数传递:
1、post请求,String类型json
2、接口获取@ResponseBody,将获取到String转json,再获取详细参数信息
3、RequestContext在过滤链中共享的,之前的参数可以获取RequestContext的HttpServletRequest,
setAttribute传递参数,之后filter通过getAttribute接受。
4、request、response在RequestContext都是以流形式存在,需InputStream转String。
5、PostFilter获取返回报文,可通过getResponseBody()获取处理。
验证:继承ZuulFilter类,重写run方法,调用具体验证服务,验证通过返回true。