当前位置: > > > API网关服务组件Spring Cloud Zuul使用详解4(路由详解4:路由前缀、本地跳转)

API网关服务组件Spring Cloud Zuul使用详解4(路由详解4:路由前缀、本地跳转)

五、路由前缀

(1)为了方便全局地为路由规则增加前缀信息,Zuul 提供了 zuul.prefix 参数来进行设置。比如下面配置将为网关上所有路由规则都增加 /api 前缀:
zuul.prefix=/api

zuul.routes.hello-service.path=/hello-service/**
zuul.routes.hello-service.service-id=hello-service

zuul.routes.feign-consumer.path=/feign-consumer/**
zuul.routes.feign-consumer.service-id=feign-consumer

(2)重启网关查看 /actuator/routes 接口可以看到所有路由规则上都统一加上了 /api 前缀:

(3)配置完前缀之后,之前访问路径都要增加 /api 前缀:
//未加前缀时访问 hello-service 服务
http://localhost:5555/hello-service/hello

//添加前缀后访问 hello-service 服务
http://localhost:5555/api/hello-service/hello

六、本地跳转

(1)在 Zuul 实现的 API 网关路由功能中,还支持 forward 形式的服务端跳转配置。比如我们在 API 网关项目中增加一个 /local/hello 的接口
@RestController
public class HelloController {

    @RequestMapping("/local/hello")
    public String hello() {
        return "welcome to hangge.com";
    }
}

(2)然后在 API 网关上增加一个本地跳转的路由规则(api-b):
zuul.routes.api-b.path=/api-b/**
zuul.routes.api-b.url=forward:/local

(3)当 API 网关接收到请求 /api-b/hello,它符合 api-b 的路由规则,所以该请求会被 API 网关转发到网关的 /local/hello 请求上进行本地处理。
评论0