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。