前言
由于需要实现多版本的 REST API 接口,因此需要使用到版本号。且想把版本号添加到 HTTP Header 里,格式为 Accept: 其他; version=1.0; 其他。我们这里使用 Spring Cloud Gateway 的路由实现。
配置路由
这里通过 Header=Accept, .*;? ?version=1\.0(|;.*) 实现路径匹配,其中 .*;? ?version=1\.0(|;.*) 是路径的匹配正则表达式,表示匹配版本参数 version=1.0 。
# REST API 接口 v1
- id: v1_rest_api_route
predicates:
- Path=/**
- Header=Accept, .*;? ?version=1\.0(|;.*)
filters:
- name: RequestRateLimiter
args:
denyEmptyKey: true
emptyKeyStatus: SERVICE_UNAVAILABLE
keyResolver: '#{@ipAddressKeyResolver}'
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
uri: http://127.0.0.1:8084
使用
如下图所示。