一款简单的feign之间调用时传递公共参数的工具。
目前参数来源和目标,内置两种方式:query、header
- query:获取时从当前http请求query参数中获取,本次feign调用是http请求触发的才可以获取到;传递时直接放到feign请求的query中
- header:获取时从当前http请求header参数中获取,本次feign调用是http请求触发的才可以获取到;传递时直接放到feign请求的header中
两者之前可以互相交叉使用。
提供接口可扩展来源(IParamGettingStrategy)、以及目标(IParamSettingStrategy ),比如从当前请求上下文中获取,threadlocal中获取,以及各种鉴权工具context中获取参数。 目前不支持请求的body处理,因为需要解析再封装对性能有比较大的影响,不内置,当然可扩展。
- 引入依赖
- 配置文件
feign: params: #拦截路径,默认值:/** ;所有 intercept-paths: - /** param-configs: userinfo: - source-name: uname source-type: QUERY target-name: username target-type: QUERY - source-name: uname source-type: QUERY target-name: name target-type: QUERY - source-name: uid source-type: HEADER target-name: userId target-type: QUERY - source-name: uid source-type: HEADER target-name: userId target-type: HEADER - source-name: uid source-type: QUERY target-name: user-id target-type: HEADER tenantInfo: - source-name: tenantId source-type: HEADER target-name: tenant-id target-type: HEADER param-method-mapping: get: - userinfo - tenantInfo post: - userinfo - tenantInfo
- source-name: 来源参数名字
- source-type: 获取参数处理策略,例如:HEADER,QUERY
- target-name: 目标参数名字
- target-type: 设置参数处理策略,例如:HEADER,QUERY
- include-paths: 包含路径,可配置多个,默认拦截所有。支持Ant的风格来的配置,参照
PathPatternParser - exclude-paths: 排除路径,可配置多个,默认为空。支持Ant的风格来的配置,参照
PathPatternParser。exclude有优先与include。