+
+
Additional parameters can be configured for each route using metadata:
+
+
+
application.yml
+
+
spring:
+ cloud:
+ gateway:
+ routes:
+ - id: route_with_metadata
+ uri: https://example.org
+ metadata:
+ optionName: "OptionValue"
+ compositeObject:
+ name: "value"
+ iAmNumber: 1
+
+
+
+
All metadata properties could be acquired from exchange:
+
+
+
+
Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR);
+// get all metadata properties
+route.getMetadata();
+// get a single metadata property
+route.getMetadata(someKey);
+
+
@@ -2241,6 +2278,7 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder, ThrottleGate
.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")
@@ -2249,6 +2287,7 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder, ThrottleGate
10,
TimeUnit.SECONDS)))
.uri("http://httpbin.org:80")
+ .metadata("key", "value")
)
.build();
}