Spring Cloud Gateway에서 다중 필터를 적용하는 방법과 사용자 정의 필터를 추가하는 방법을 알아보겠습니다.
easybank/accounts/**
와 같은 경로가 들어오면, 해당 경로를 재작성한 후, 실제 마이크로서비스로 전달합니다.AddResponseHeader
필터를 사용하여 응답에 X-Response-Time
헤더를 추가하여 응답이 생성된 시간을 클라이언트에게 전달할 수 있습니다.AddResponseHeader
와 같은 사전 정의된 필터는 공식 문서에서 확인할 수 있으며, 이러한 필터를 활용하여 비즈니스 요구사항을 충족할 수 있습니다.@Bean
public RouteLocator easybankRouteConfig(RouteLocatorBuilder builder) {
return builder.routes()
.route(p -> p.path("/easybank/accounts/**")
.filters(f -> f
.rewritePath("/easybank/accounts(?<segment>/.*)", "$\\{segment}")
.addResponseHeader("X-Response-Time", LocalDateTime.now().toString()))
.uri("lb://ACCOUNTS"))
.route(p -> p.path("/easybank/loans/**")
.filters(f -> f
.rewritePath("/easybank/loans(?<segment>/.*)", "$\\{segment}")
.addResponseHeader("X-Response-Time", LocalDateTime.now().toString()))
.uri("lb://LOANS"))
.route(p -> p.path("/easybank/cards/**")
.filters(f -> f
.rewritePath("/easybank/cards(?<segment>/.*)", "$\\{segment}")
.addResponseHeader("X-Response-Time", LocalDateTime.now().toString()))
.uri("lb://CARDS"))
.build();
}
이 코드에서는 각 라우트에 대해 AddResponseHeader
필터를 추가하여 응답에 현재 시간(X-Response-Time
)을 포함하도록 설정했습니다.
이제 Spring Cloud Gateway에서 다양한 필터를 사용하여 요청과 응답을 처리할 수 있습니다. 또한, Spring Cloud Gateway에서 제공하는 사전 정의된 필터를 활용해 대부분의 비즈니스 요구사항을 충족할 수 있습니다. 하지만 특정 요구사항이 존재할 경우, 사용자 정의 필터를 만들어 구현할 수 있습니다.
다음 챕터에서는 사용자 정의 필터를 구현하는 방법에 대해 자세히 알아보겠습니다. 감사합니다!