在Zuul API网关中剥离前缀

时间:2018-06-26 06:39:49

标签: spring-boot netflix-zuul api-gateway

我正在尝试使用zuul配置API呼叫路由器,以转发呼叫。 有两种服务:用户服务正在使用路径版本控制,即/v1/users/v2/users,... 帐户服务不使用路径版本控制,因此所有路由都省略了v*前缀(/accounts)。

要提供一个公共界面,我想在我的api路由器中接受对/v*/accounts的调用,并将其转发到我的帐户服务上的/accounts。 对/v*/user/的呼叫应原样转发到用户服务。

我的application.yml看起来像这样

zuul:
  routes:
    users: 
      path: /v*/users/**
      url: ${microservices.usersServiceUrl}
      stripPrefix: false
    accounts: 
      path: /v*/accounts/**
      url: ${microservices.accountsServiceUrl}
      stripPrefix: true

不幸的是,这没有预期的效果。 剥离的帐户路径中没有任何内容,它们将按原样转发。

如果我删除正则表达式(v*)并放入path: /v1/accounts/**,则会删除整个前缀/v1/accounts。显然,正则表达式可防止删除前缀,从而使path: /v1/**/accounts/**起作用。但是,我想避免明确命名所有版本,因为我们的API目前正在迅速发展。

使用全局zuul.prefix也无济于事,因为您只能全局决定将其剥离或保留完整的AFAIK。

我主要依靠on this documentation

是否有更好的方法来指定转发的URL的格式?

0 个答案:

没有答案