parent
							
								
									405c161c68
								
							
						
					
					
						commit
						8de9db5ff1
					
				| @ -1,38 +1,39 @@ | ||||
| * [首页](/?t=1580871460178) | ||||
| * [首页](/?t=1582014833549) | ||||
| * 开发文档 | ||||
|   * [快速体验](files/10010_快速体验.md?t=1580871460179) | ||||
|   * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1580871460202) | ||||
|   * [新增接口](files/10020_新增接口.md?t=1580871460202) | ||||
|   * [开发流程](files/10021_开发流程.md?t=1580871460202) | ||||
|   * [业务参数校验](files/10030_业务参数校验.md?t=1580871460203) | ||||
|   * [错误处理](files/10040_错误处理.md?t=1580871460203) | ||||
|   * [编写文档](files/10041_编写文档.md?t=1580871460203) | ||||
|   * [接口交互详解](files/10050_接口交互详解.md?t=1580871460203) | ||||
|   * [easyopen支持](files/10070_easyopen支持.md?t=1580871460203) | ||||
|   * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1580871460203) | ||||
|   * [ISV管理](files/10085_ISV管理.md?t=1580871460204) | ||||
|   * [自定义返回结果](files/10087_自定义返回结果.md?t=1580871460204) | ||||
|   * [自定义过滤器](files/10088_自定义过滤器.md?t=1580871460204) | ||||
|   * [自定义校验token](files/10089_自定义校验token.md?t=1580871460204) | ||||
|   * [路由授权](files/10090_路由授权.md?t=1580871460204) | ||||
|   * [接口限流](files/10092_接口限流.md?t=1580871460204) | ||||
|   * [监控日志](files/10093_监控日志.md?t=1580871460204) | ||||
|   * [SDK开发](files/10095_SDK开发.md?t=1580871460204) | ||||
|   * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1580871460205) | ||||
|   * [应用授权](files/10097_应用授权.md?t=1580871460205) | ||||
|   * [提供restful接口](files/10100_提供restful接口.md?t=1580871460205) | ||||
|   * [文件上传](files/10104_文件上传.md?t=1580871460205) | ||||
|   * [配置Sleuth链路追踪](files/10109_配置Sleuth链路追踪.md?t=1580871460205) | ||||
|   * [预发布灰度发布](files/10110_预发布灰度发布.md?t=1580871460205) | ||||
|   * [动态修改请求参数](files/10111_动态修改请求参数.md?t=1580871460205) | ||||
|   * [使用eureka](files/10112_使用eureka.md?t=1580871460205) | ||||
|   * [扩展其它注册中心](files/10113_扩展其它注册中心.md?t=1580871460206) | ||||
|   * [快速体验](files/10010_快速体验.md?t=1582014833552) | ||||
|   * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1582014833568) | ||||
|   * [新增接口](files/10020_新增接口.md?t=1582014833568) | ||||
|   * [开发流程](files/10021_开发流程.md?t=1582014833568) | ||||
|   * [业务参数校验](files/10030_业务参数校验.md?t=1582014833568) | ||||
|   * [错误处理](files/10040_错误处理.md?t=1582014833568) | ||||
|   * [编写文档](files/10041_编写文档.md?t=1582014833569) | ||||
|   * [接口交互详解](files/10050_接口交互详解.md?t=1582014833569) | ||||
|   * [easyopen支持](files/10070_easyopen支持.md?t=1582014833569) | ||||
|   * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1582014833569) | ||||
|   * [ISV管理](files/10085_ISV管理.md?t=1582014833569) | ||||
|   * [自定义返回结果](files/10087_自定义返回结果.md?t=1582014833569) | ||||
|   * [自定义过滤器](files/10088_自定义过滤器.md?t=1582014833569) | ||||
|   * [自定义校验token](files/10089_自定义校验token.md?t=1582014833569) | ||||
|   * [网关拦截器](files/10090_网关拦截器.md?t=1582014833570) | ||||
|   * [路由授权](files/10090_路由授权.md?t=1582014833570) | ||||
|   * [接口限流](files/10092_接口限流.md?t=1582014833570) | ||||
|   * [监控日志](files/10093_监控日志.md?t=1582014833570) | ||||
|   * [SDK开发](files/10095_SDK开发.md?t=1582014833570) | ||||
|   * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1582014833570) | ||||
|   * [应用授权](files/10097_应用授权.md?t=1582014833570) | ||||
|   * [提供restful接口](files/10100_提供restful接口.md?t=1582014833571) | ||||
|   * [文件上传](files/10104_文件上传.md?t=1582014833571) | ||||
|   * [配置Sleuth链路追踪](files/10109_配置Sleuth链路追踪.md?t=1582014833571) | ||||
|   * [预发布灰度发布](files/10110_预发布灰度发布.md?t=1582014833571) | ||||
|   * [动态修改请求参数](files/10111_动态修改请求参数.md?t=1582014833571) | ||||
|   * [使用eureka](files/10112_使用eureka.md?t=1582014833571) | ||||
|   * [扩展其它注册中心](files/10113_扩展其它注册中心.md?t=1582014833572) | ||||
| * 原理分析 | ||||
|   * [网关性能测试](files/90001_网关性能测试.md?t=1580871460206) | ||||
|   * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1580871460206) | ||||
|   * [原理分析之如何存储路由](files/90011_原理分析之如何存储路由.md?t=1580871460206) | ||||
|   * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1580871460206) | ||||
|   * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1580871460207) | ||||
|   * [原理分析之预发布灰度发布](files/90014_原理分析之预发布灰度发布.md?t=1580871460207) | ||||
|   * [2.x升3.x注意事项](files/90099_2.x升3.x注意事项.md?t=1580871460207) | ||||
|   * [常见问题](files/90100_常见问题.md?t=1580871460207) | ||||
|   * [网关性能测试](files/90001_网关性能测试.md?t=1582014833572) | ||||
|   * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1582014833572) | ||||
|   * [原理分析之如何存储路由](files/90011_原理分析之如何存储路由.md?t=1582014833572) | ||||
|   * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1582014833572) | ||||
|   * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1582014833572) | ||||
|   * [原理分析之预发布灰度发布](files/90014_原理分析之预发布灰度发布.md?t=1582014833572) | ||||
|   * [2.x升3.x注意事项](files/90099_2.x升3.x注意事项.md?t=1582014833572) | ||||
|   * [常见问题](files/90100_常见问题.md?t=1582014833572) | ||||
|  | ||||
| @ -0,0 +1,57 @@ | ||||
| # 网关拦截器 | ||||
| 
 | ||||
| 从3.1.0开始新增了网关拦截器,使用该拦截器可做一些数据统计,日志记录等工作。 | ||||
| 
 | ||||
| 使用方法如下: | ||||
| 
 | ||||
| - 在sop-gateway工程下新增一个类,实现`RouteInterceptor`接口,实现接口中的方法。别忘了加`@Component` | ||||
| 
 | ||||
| ```java | ||||
| @Component | ||||
| public class MyRouteInterceptor implements RouteInterceptor { | ||||
|     @Override | ||||
|     public void preRoute(RouteInterceptorContext context) { | ||||
|         ApiParam apiParam = context.getApiParam(); | ||||
|         System.out.println("请求接口:" + apiParam.fetchNameVersion()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public void afterRoute(RouteInterceptorContext context) { | ||||
|         System.out.println("请求成功,微服务返回结果:" + context.getServiceResult()); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int getOrder() { | ||||
|         return 0; | ||||
|     } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| RouteInterceptor接口方法说明: | ||||
| 
 | ||||
| - `public void preRoute(RouteInterceptorContext context)` | ||||
| 
 | ||||
| 路由转发前执行,在签名验证通过之后会立即执行这个方法。 | ||||
| 
 | ||||
| - `public void afterRoute(RouteInterceptorContext context)` | ||||
| 
 | ||||
| 路由转发完成后,即拿到微服务返回结果后执行这个方法 | ||||
| 
 | ||||
| - `public int getOrder()` | ||||
| 
 | ||||
| 指定拦截执行顺序,数字小的优先执行,建议从0开始。 | ||||
| 
 | ||||
| - `default boolean match(RouteInterceptorContext context)` | ||||
| 
 | ||||
| 是否匹配,返回true执行拦截器,默认true | ||||
| 
 | ||||
| RouteInterceptorContext参数存放了各类参数信息。 | ||||
| 
 | ||||
| 参考类: | ||||
| 
 | ||||
| - `com.gitee.sop.gatewaycommon.interceptor.RouteInterceptor` 拦截器接口 | ||||
| - `com.gitee.sop.gatewaycommon.interceptor.RouteInterceptorContext` 拦截器上下文 | ||||
| - `com.gitee.sop.gatewaycommon.interceptor.MonitorRouteInterceptor` 默认实现的拦截器,用于收集监控数据 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in new issue