Skip to content
This repository was archived by the owner on Jul 14, 2026. It is now read-only.

Commit 122ce0f

Browse files
authored
Merge pull request #77 from bright-room/claude/issue-61-20260310-0309
Close #61: Add conditionFallback overloads to WebMVC functional-endpoint example
2 parents f0f8564 + f4b919f commit 122ce0f

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

examples/webmvc/functional-endpoint/src/main/java/net/brightroom/example/functional/FeatureHandler.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,12 @@ public ServerResponse beta(ServerRequest request) {
1818
public ServerResponse experimental(ServerRequest request) {
1919
return ServerResponse.ok().body("experimental-api: this endpoint is under development.");
2020
}
21+
22+
public ServerResponse internal(ServerRequest request) {
23+
return ServerResponse.ok().body("internal-api: internal data accessible to internal clients.");
24+
}
25+
26+
public ServerResponse preview(ServerRequest request) {
27+
return ServerResponse.ok().body("preview-feature: preview feature for early adopters.");
28+
}
2129
}

examples/webmvc/functional-endpoint/src/main/java/net/brightroom/example/functional/RoutingConfiguration.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,20 @@ RouterFunction<ServerResponse> experimentalRoute(FeatureHandler handler) {
4040
.filter(endpointGateFilter.of("experimental-api"))
4141
.build();
4242
}
43+
44+
@Bean
45+
RouterFunction<ServerResponse> internalRoute(FeatureHandler handler) {
46+
return route()
47+
.GET("/api/internal", handler::internal)
48+
.filter(endpointGateFilter.of("internal-api", "headers['X-Internal'] == 'true'"))
49+
.build();
50+
}
51+
52+
@Bean
53+
RouterFunction<ServerResponse> previewRoute(FeatureHandler handler) {
54+
return route()
55+
.GET("/api/preview", handler::preview)
56+
.filter(endpointGateFilter.of("preview-feature", "params['preview'] == 'true'", 30))
57+
.build();
58+
}
4359
}

examples/webmvc/functional-endpoint/src/main/resources/application.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ endpoint-gate:
77
rollout: 50
88
experimental-api:
99
enabled: false
10+
internal-api:
11+
enabled: true
12+
preview-feature:
13+
enabled: true

0 commit comments

Comments
 (0)