如何设置路由的默认前缀?

时间:2019-07-22 12:13:22

标签: spring-cloud-gateway

我正在尝试配置Spring-Cloud-Gateway。

基本目标是为包含其他服务的其他服务添加路由

/some-api/**       -> http://some-api/**
/some-other-api/** -> http://some-other-api.com/**

现在唯一可行的配置就是这个。

spring:
  cloud:
    gateway:
      routes:
        - id: some-api
          uri: https://some-api.com
          predicates:
            - Path=/some-api/**
          filters:
            - StripPrefix=1 # REQUIRED?
        - id: some-other-api
          uri: https://some-other-api.com
          predicates:
            - Path=/some-other-api/**./g
          filters:
            - StripPrefix=1 # REQUIRED?

我的问题是需要- StripPrefix=1行吗?

当我注释掉它们时,路线不起作用。

原始服务获得诸如这样的前缀请求。

/some-api/swagger-ui.html -> http://some-api.com/some-api/swagger-ui.html

应该是

/some-api/swagger-ui.html -> http://some-api.com/swagger-ui.html

1 个答案:

答案 0 :(得分:1)

是的。

Comment.find(id).user 剥离请求路径的一部分,然后再向下游发送。请检查user_id
https://cloud.spring.io/spring-cloud-gateway/reference/html/#_stripprefix_gatewayfilter_factory

如果您的请求路径为StripPrefixGatewayFilterFactory,而配置为StringPrefixGatewayFilterFactory,则StripPrefixGatewayFilterFactory将剥离请求路径的一部分。在这种情况下,剥离的部分为/some-api/swagger-ui.html

要使其按您希望的方式工作,您必须剥离请求路径的一部分。