.filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "foobar")) .uri(uri) s -> s.trim().equalsIgnoreCase("hi")) .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "read_body_pred") ).uri(uri) .addResponseHeader("X-TestHeader", "rewrite_request") .modifyRequestBody(String.class, Hello.class, MediaType.APPLICATION_JSON_VALUE, (exchange, s) -> { .addResponseHeader("X-TestHeader", "rewrite_request_upper") .modifyRequestBody(String.class, String.class, (exchange, s) -> { .addResponseHeader("X-TestHeader", "rewrite_response_upper") .modifyResponseBody(String.class, String.class, (exchange, s) -> { .addResponseHeader("X-TestHeader", "rewrite_response_obj") .modifyResponseBody(Map.class, String.class, MediaType.TEXT_PLAIN_VALUE, (exchange, map) -> { .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-AnotherHeader", "baz"))
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("add_response_param_java_test", r -> r.path("/get").and().host("**.addresponseparamjava.org") .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("example", "myresponsevalue")) .uri(uri)) .build(); } }
@Test public void testASetOfRoutes() { RouteLocator routeLocator = this.routeLocatorBuilder.routes() .route("test1", r -> r.host("*.somehost.org").and().path("/somepath") .filters(f -> f.addRequestHeader("header1", "header-value-1")) .uri("http://someuri")) .route("test2", r -> r.host("*.somehost2.org") .filters(f -> f.addResponseHeader("header-response-1", "header-response-1")) .uri("https://httpbin.org:9090")) .build(); StepVerifier.create(routeLocator.getRoutes()) .expectNextMatches( r -> r.getId().equals("test1") && r.getFilters().size() == 1 && r.getUri().equals(URI.create("http://someuri:80"))) .expectNextMatches( r -> r.getId().equals("test2") && r.getFilters().size() == 1 && r.getUri() .equals(URI.create("https://httpbin.org:9090"))) .expectComplete().verify(); }
}).filters(f -> f.addResponseHeader("X-TestHeader", "read_body_pred")) .uri("http://httpbin.org") ).route("modify_request_body", r -> r.path("/modify/test2")
@Bean public RouteLocator customerRouteLocator(RouteLocatorBuilder builder) { // @formatter:off return builder.routes() .route( r -> r.path("/fluent/customer/**") .filters(f -> f.stripPrefix(2) .filter(new ElapsedFilter()) .addResponseHeader("X-Response-Default-Foo", "Default-Bar")) .uri("lb://CONSUMER") .order(0) .id("fluent_customer_service") ) .route(r -> r.path("/throttle/customer/**") .filters(f -> f.stripPrefix(2) .filter(new RateLimitByIpGatewayFilter(10, 1, Duration.ofSeconds(1))) .filter(rateLimitByCpuGatewayFilter)) .uri("lb://CONSUMER") .order(0) .id("throttle_customer_service") ) .build(); // @formatter:on }