Fluent Java Routes API
Java での単純な構成を可能にするために、RouteLocatorBuilder
Bean には流れるような API が含まれています。次のリストは、それがどのように機能するかを示しています。
GatewaySampleApplication.java
// static imports from GatewayFilters and RoutePredicates
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder, ThrottleGatewayFilterFactory throttle) {
return builder.routes()
.route(r -> r.host("**.abc.org").and().path("/image/png")
.filters(f ->
f.addResponseHeader("X-TestHeader", "foobar"))
.uri("http://httpbin.org:80")
)
.route(r -> r.path("/image/webp")
.filters(f ->
f.addResponseHeader("X-AnotherHeader", "baz"))
.uri("http://httpbin.org:80")
.metadata("key", "value")
)
.route(r -> r.order(-1)
.host("**.throttle.org").and().path("/get")
.filters(f -> f.filter(throttle.apply(1,
1,
10,
TimeUnit.SECONDS)))
.uri("http://httpbin.org:80")
.metadata("key", "value")
)
.build();
}
このスタイルでは、より多くのカスタム述語アサーションも可能です。RouteDefinitionLocator
Bean によって定義された述語は、論理 and
を使用して結合されます。流れるような JavaAPI を使用することにより、Predicate
クラスで and()
、or()
、negate()
演算子を使用できます。