.route(r -> r.host("**.abc.org").and().path("/anything/png") .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "foobar")) .uri(uri) .and().readBody(String.class, s -> s.trim().equalsIgnoreCase("hi")) .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "read_body_pred") ).uri(uri) .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "rewrite_request") .modifyRequestBody(String.class, Hello.class, MediaType.APPLICATION_JSON_VALUE, .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "rewrite_request_upper") .modifyRequestBody(String.class, String.class, .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "rewrite_response_upper") .modifyResponseBody(String.class, String.class, .filters(f -> f.prefixPath("/httpbin") .addResponseHeader("X-TestHeader", "rewrite_response_obj") .modifyResponseBody(Map.class, String.class, MediaType.TEXT_PLAIN_VALUE, f.prefixPath("/httpbin")
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("host_multi_dsl", r -> r.host("**.hostmultidsl1.org", "**.hostmultidsl2.org") .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); } }
@Bean RouteLocator queryRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("foo_query_param", r -> r.query("foo", "bar") .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); } }
@Bean RouteLocator queryRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("header_exists_dsl", r -> r.header("X-Foo") .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("test_between_valid", r -> r.host("**.betweenvalid.org") .and().between(ZonedDateTime.now().minusDays(1), ZonedDateTime.now().plusDays(1)) .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("path_multi_dsl", r -> r.host("**.pathmultidsl.org") .and().path(false, "/anything/multidsl1", "/anything/multidsl3") .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("weight_low_test", r -> r.weight("group1", 2) .and().host("**.weightlow.org") .filters(f -> f.prefixPath("/httpbin")) .uri(this.uri)) .build(); }
@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(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("add_request_header_java_test", r -> r.path("/headers").and().host("**.addrequestheaderjava.org") .filters(f -> f.prefixPath("/httpbin").addRequestHeader("X-Request-Acme", "ValueB")) .uri(uri)) .build(); } }
@Bean public RouteLocator hystrixRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("retry_java", r -> r.host("**.retryjava.org") .filters(f -> f.prefixPath("/httpbin") .retry(config -> config.setRetries(2))) .uri(uri)) .route("retry_with_loadbalancer", r -> r.host("**.retrywithloadbalancer.org") .filters(f -> f.prefixPath("/httpbin") .retry(config -> config.setRetries(2))) .uri("lb://badservice2")) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes().route("test_preserve_host_header", r -> r.order(-1) .host("**.preservehostheader.org") .filters(f -> f.prefixPath("/httpbin") .preserveHostHeader() .setRequestHeader("Host", "myhost.net")) .uri(uri)) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes().route("test_set_request_header", r -> r.order(-1) .host("**.setrequestheader.org") .filters(f -> f.prefixPath("/httpbin") .addRequestHeader("X-Req-Foo", "First") .setRequestHeader("X-Req-Foo", "Second")) .uri(uri)) .build(); } }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("add_request_param_java_test", r -> r.path("/get").and().host("**.addreqparamjava.org") .filters(f -> f.prefixPath("/httpbin").addRequestParameter("example", "ValueB")) .uri(uri)) .build(); } }
@Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route(r -> r.path("/myapi/**") .filters(f -> f.requestRateLimiter(c -> c.setRateLimiter(myRateLimiter())) .prefixPath("/downstream")) .uri("http://localhost:"+port)) .build(); }
@Bean public RouteLocator hystrixRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("hystrix_java", r -> r.host("**.hystrixjava.org") .filters(f -> f.prefixPath("/httpbin") .hystrix(config -> config.setFallbackUri("forward:/fallbackcontroller2"))) .uri(uri)) .route("hystrix_connection_failure", r -> r.host("**.hystrixconnectfail.org") .filters(f -> f.prefixPath("/httpbin") .hystrix(config -> { })) .uri("lb:badservice")) /* * This is a route encapsulated in a hystrix command that is ready to wait * for a response far longer than the underpinning WebClient would. */ .route("hystrix_response_stall", r -> r.host("**.hystrixresponsestall.org") .filters(f -> f.prefixPath("/httpbin") .hystrix(config -> config.setName("stalling-command"))) .uri(uri)) .build(); }
@Bean public RouteLocator testRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route("non_standard_header_route", r -> r.path("/get-image/**") .filters(f -> f .addRequestHeader(HttpHeaders.HOST, "www.addrequestparameter.org") .stripPrefix(1) ) .uri("http://localhost:" + port + "/get")) .route("internal_route", r -> r.path("/get/**") .filters(f -> f.prefixPath("/httpbin")) .uri(uri)) .build(); }