org.springframework.web.reactive.function.server.RouterFunction Java Examples
The following examples show how to use
org.springframework.web.reactive.function.server.RouterFunction.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: Router.java From influx-proxy with Apache License 2.0 | 6 votes |
@Bean
public RouterFunction<ServerResponse> routeCity(InfluxProxyHandler influxProxyHandler) {
return RouterFunctions
.route(RequestPredicates.path("/query")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::query)
.andRoute(RequestPredicates.POST("/write")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::write)
.andRoute(RequestPredicates.GET("/ping")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::ping)
.andRoute(RequestPredicates.path("/debug/{opt}")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::debug)
.andRoute(RequestPredicates.path("/debug")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::debug)
.andRoute(RequestPredicates.path("/refresh/allBackend")
.and(RequestPredicates.accept(MediaType.ALL)),
influxProxyHandler::refreshAllBackend)
;
}
Example #2
Source File: Server.java From Building-RESTful-Web-Services-with-Spring-5-Second-Edition with MIT License | 6 votes |
public RouterFunction<ServerResponse> routingFunction() {
UserRepository repository = new UserRepositorySample();
UserHandler handler = new UserHandler(repository);
return nest (
path("/user"),
nest(
accept(MediaType.ALL),
route(GET("/"), handler::getAllUsers)
)
.andRoute(GET("/{id}"), handler::getUser)
.andRoute(POST("/").and(contentType(APPLICATION_JSON)), handler::createUser)
.andRoute(PUT("/").and(contentType(APPLICATION_JSON)), handler::updateUser)
.andRoute(DELETE("/{id}").and(contentType(APPLICATION_JSON)), handler::deleteUser)
);
}
Example #3
Source File: App.java From spring-5-examples with MIT License | 6 votes |
@Bean
RouterFunction routes(final HandlerFunction<ServerResponse> fallbackHandler) {
return
nest(
path("/"),
nest(
accept(APPLICATION_JSON),
route(
GET("/api/orders"),
getOrdersHandler()
)
).andNest(
accept(APPLICATION_JSON),
route(
GET("/api"),
getCountQueryHandler()
)
)
).andOther(
route(
GET("/**"),
fallbackHandler
)
)
;
}
Example #4
Source File: EmployeeFunctionalConfig.java From springdoc-openapi with Apache License 2.0 | 6 votes |
@Bean
@RouterOperations({ @RouterOperation(path = "/employees-composed/update", beanClass = EmployeeRepository.class, beanMethod = "updateEmployee"),
@RouterOperation(path = "/employees-composed/{id}", beanClass = EmployeeRepository.class, beanMethod = "findEmployeeById"),
@RouterOperation(path = "/employees-composed", beanClass = EmployeeRepository.class, beanMethod = "findAllEmployees") })
RouterFunction<ServerResponse> composedRoutes() {
return
route(GET("/employees-composed"),
req -> ok().body(
employeeRepository().findAllEmployees(), Employee.class))
.and(route(GET("/employees-composed/{id}"),
req -> ok().body(
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class)))
.and(route(POST("/employees-composed/update"),
req -> req.body(BodyExtractors.toMono(Employee.class))
.doOnNext(employeeRepository()::updateEmployee)
.then(ok().build())));
}
Example #5
Source File: DemoApplication.java From Hands-On-Reactive-Programming-in-Spring-5 with MIT License | 6 votes |
@Bean
public RouterFunction<ServerResponse> routes(OrderHandler orderHandler) {
return
nest(path("/orders"),
nest(accept(APPLICATION_JSON),
route(GET("/{id}"), orderHandler::get)
.andRoute(method(HttpMethod.GET), orderHandler::list)
)
.andNest(contentType(APPLICATION_JSON),
route(POST("/"), orderHandler::create)
)
.andNest((serverRequest) -> serverRequest.cookies()
.containsKey("Redirect-Traffic"),
route(all(), serverRedirectHandler)
)
);
}
Example #6
Source File: EmployeeFunctionalConfig.java From tutorials with MIT License | 6 votes |
@Bean
RouterFunction<ServerResponse> composedRoutes() {
return
route(GET("/employees"),
req -> ok().body(
employeeRepository().findAllEmployees(), Employee.class))
.and(route(GET("/employees/{id}"),
req -> ok().body(
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class)))
.and(route(POST("/employees/update"),
req -> req.body(toMono(Employee.class))
.doOnNext(employeeRepository()::updateEmployee)
.then(ok().build())));
}
Example #7
Source File: FileItemsRoutes.java From streaming-file-server with MIT License | 6 votes |
@Bean
public RouterFunction<ServerResponse> routes(final FileItemsHandler handler) {
/* return
nest(path("/api/v1/file-items"),
route(GET("/"), handler::getAll)
.andRoute(GET("/like/{filename}/**"), handler::searchAny)
.andRoute(POST("/all/**"), handler::saveAll))
.andRoute(GET("/{id}/**"), handler::getById)
.andRoute(POST("/**"), handler::save)
.andRoute(path("/**"), handler::getAll);
*/
return
route(GET("/api/v1/file-items/like/{filename}"), handler::searchAny)
.andRoute(POST("/api/v1/file-items/all"), handler::saveAll)
.andRoute(GET("/api/v1/file-items/{id}"), handler::getById)
.andRoute(POST("/api/v1/file-items"), handler::save)
.andRoute(path("/**"), handler::getAll)
;
}
Example #8
Source File: FunctionalSpringBootApplication.java From tutorials with MIT License | 6 votes |
private RouterFunction<ServerResponse> routingFunction() { FormHandler formHandler = new FormHandler(); RouterFunction<ServerResponse> restfulRouter = route(GET("/"), serverRequest -> ok().body(Flux.fromIterable(actors), Actor.class)).andRoute(POST("/"), serverRequest -> serverRequest.bodyToMono(Actor.class) .doOnNext(actors::add) .then(ok().build())); return route(GET("/test"), serverRequest -> ok().body(fromObject("helloworld"))) .andRoute(POST("/login"), formHandler::handleLogin) .andRoute(POST("/upload"), formHandler::handleUpload) .and(RouterFunctions.resources("/files/**", new ClassPathResource("files/"))) .andNest(path("/actor"), restfulRouter) .filter((request, next) -> { System.out.println("Before handler invocation: " + request.path()); return next.handle(request); }); }
Example #9
Source File: UserRoutes.java From spring-5-examples with MIT License | 5 votes |
@Bean
RouterFunction<ServerResponse> routes(final UserHandlers handlers) {
return route(GET("/api/v1/users/**"),
handlers::streamUsers)
.andRoute(POST("/api/v1/users/**"),
handlers::saveUser)
;
}
Example #10
Source File: HttpIT.java From vertx-spring-boot with Apache License 2.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> upperCookieRouter() {
return route()
.GET("/", request -> {
String text = request.cookies()
.getFirst("text")
.getValue()
.toUpperCase();
ResponseCookie cookie = ResponseCookie.from("text", text).build();
return noContent().cookie(cookie).build();
})
.build();
}
Example #11
Source File: HttpServerConfig.java From Spring-5.0-Cookbook with MIT License | 5 votes |
public ServletRegistrationBean routeServlet1(RouterFunction<?> routerFunction) throws Exception {
HttpHandler httpHandler = RouterFunctions.toHttpHandler(routerFunction );
ServletHttpHandlerAdapter servlet = new ServletHttpHandlerAdapter(httpHandler);
ServletRegistrationBean registrationBean = new ServletRegistrationBean<>(servlet, "/flux" + "/*");
registrationBean.setLoadOnStartup(1);
registrationBean.setAsyncSupported(true);
System.out.println("starts server");
return registrationBean;
}
Example #12
Source File: ReservationClientApplication.java From bootiful-reactive-microservices with Apache License 2.0 | 5 votes |
@Bean
RouterFunction<ServerResponse> routes(ReservationClient client) {
return route(GET("/reservations/names"), serverRequest -> {
Flux<String> names = client
.getAllReservations()
.map(Reservation::getName);
Publisher<String> cb = HystrixCommands
.from(names)
.eager()
.commandName("names")
.fallback(Flux.just("EEK!"))
.build();
/* // hedging
WebClient wc = null; ///
DiscoveryClient dc = null; ///
List<ServiceInstance> instances = dc.getInstances("foo-service");
if (instances.size() >= 3) {
List<ServiceInstance> serviceInstances = instances.subList(0, 3);
Flux<Reservation> callThreeServicesAtTheSameTime = Flux
.fromStream(serviceInstances.stream())
.map(si -> si.getHost() + ':' + si.getPort())
.flatMap(uri -> wc.get().uri(uri).retrieve().bodyToFlux(Reservation.class));
Flux<Reservation> first = Flux.first(callThreeServicesAtTheSameTime);
}
*/
return ServerResponse.ok().body(cb, String.class);
});
}
Example #13
Source File: StudentRouterHandlerCombined.java From Spring-5.0-Projects with MIT License | 5 votes |
@Bean RouterFunction<ServerResponse> returnAllStudentWithCombineFun(){ HandlerFunction<ServerResponse> studentHandler = serverRequest -> ServerResponse.ok().body(studentMongoRepository.findAll(), Student.class); RouterFunction<ServerResponse> studentResponse = RouterFunctions.route(RequestPredicates.GET("/api/f/combine/getAllStudent"), studentHandler); return studentResponse; }
Example #14
Source File: App.java From spring-5-examples with MIT License | 5 votes |
@Bean
RouterFunction<ServerResponse> routes(Handlers handlers) {
return nest(path("/api/v1"), route()
.GET("/hey", handlers::hey)
.GET("/hoy", handlers::hoy)
.GET("/collect", handlers::collect)
.build())
.andRoute(path("/**"), handlers::falback);
}
Example #15
Source File: FirestoreSampleApplication.java From spring-cloud-gcp with Apache License 2.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> indexRouter(
@Value("classpath:/static/index.html") final Resource indexHtml) {
// Serve static index.html at root, for convenient message publishing.
return route(
GET("/"),
request -> ok().contentType(MediaType.TEXT_HTML).bodyValue(indexHtml));
}
Example #16
Source File: EmployeeFunctionalConfig.java From tutorials with MIT License | 5 votes |
@Bean
RouterFunction<ServerResponse> updateEmployeeRoute() {
return route(POST("/employees/update"),
req -> req.body(toMono(Employee.class))
.doOnNext(employeeRepository()::updateEmployee)
.then(ok().build()));
}
Example #17
Source File: ReactiveWebServerAutoConfigurationTest.java From armeria with Apache License 2.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> route(TestHandler testHandler) {
return RouterFunctions
.route(RequestPredicates.GET("/route")
.and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
testHandler::route)
.andRoute(RequestPredicates.POST("/route2")
.and(RequestPredicates.contentType(MediaType.APPLICATION_JSON)),
testHandler::route2)
.andRoute(RequestPredicates.HEAD("/route3"), request -> ServerResponse.ok().build());
}
Example #18
Source File: BootWebfluxApplication.java From springfox-demos with Apache License 2.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> route(GreetingHandler greetingHandler) {
return RouterFunctions
.route(RequestPredicates.GET("/hello")
.and(RequestPredicates.accept(MediaType.TEXT_PLAIN)),
greetingHandler::hello);
}
Example #19
Source File: BookRouter.java From springdoc-openapi with Apache License 2.0 | 5 votes |
@Bean
@RouterOperations({
@RouterOperation(path = "/books", produces = {MediaType.APPLICATION_XML_VALUE, MediaType.APPLICATION_JSON_VALUE} , beanClass = BookRepository.class, beanMethod = "findAll"),
@RouterOperation(path = "/books", produces = {MediaType.TEXT_PLAIN_VALUE, MediaType.APPLICATION_XML_VALUE} , beanClass = BookRepository.class, beanMethod = "findAll"),
@RouterOperation(path = "/books/{author}", beanClass = BookRepository.class, beanMethod = "findByAuthor",
operation = @Operation(operationId = "findByAuthor"
,parameters = { @Parameter(in = ParameterIn.PATH, name = "author")})) })
RouterFunction<?> routes(BookRepository br) {
return
route(GET("/books").and(accept(MediaType.APPLICATION_JSON)).and(accept(MediaType.APPLICATION_XML)), req -> ok().body(br.findAll(), Book.class))
.and(route(GET("/books").and(accept(MediaType.APPLICATION_XML)).and(accept(MediaType.TEXT_PLAIN)), req -> ok().body(br.findAll(), Book.class)))
.andRoute(GET("/books/{author}"), req -> ok().body(br.findByAuthor(req.pathVariable("author")), Book.class));
}
Example #20
Source File: HttpIT.java From vertx-spring-boot with Apache License 2.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> upperHeaderRouter() {
return route()
.GET("/", request -> {
String text = request.headers()
.header("text")
.get(0)
.toUpperCase();
return noContent().header("text", text).build();
})
.build();
}
Example #21
Source File: ReactorAutoConfigurationInitializer.java From spring-init with Apache License 2.0 | 5 votes |
private void registerEndpoint(GenericApplicationContext context) {
context.registerBean(StringConverter.class,
() -> new BasicStringConverter(context.getBean(FunctionInspector.class), context.getBeanFactory()));
context.registerBean(RequestProcessor.class,
() -> new RequestProcessor(context.getBean(FunctionInspector.class),
context.getBean(FunctionCatalog.class), context.getBeanProvider(JsonMapper.class),
context.getBean(StringConverter.class), context.getBeanProvider(ServerCodecConfigurer.class)));
context.registerBean(PublicFunctionEndpointFactory.class,
() -> new PublicFunctionEndpointFactory(context.getBean(FunctionCatalog.class),
context.getBean(FunctionInspector.class), context.getBean(RequestProcessor.class),
context.getEnvironment()));
context.registerBean(RouterFunction.class,
() -> context.getBean(PublicFunctionEndpointFactory.class).functionEndpoints());
}
Example #22
Source File: RouterFunctionMappingTests.java From java-technology-stack with MIT License | 5 votes |
@Test
public void noMatch() {
RouterFunction<ServerResponse> routerFunction = request -> Mono.empty();
RouterFunctionMapping mapping = new RouterFunctionMapping(routerFunction);
mapping.setMessageReaders(this.codecConfigurer.getReaders());
Mono<Object> result = mapping.getHandler(this.exchange);
StepVerifier.create(result)
.expectComplete()
.verify();
}
Example #23
Source File: MovieFunctionalRoute.java From spring-5-examples with MIT License | 5 votes |
@Bean
RouterFunction<ServerResponse> movieRouterFunction(final MovieHandler handler) {
return route(GET("/first"), handler::getFirstLike)
.andRoute(GET("/all"), handler::searchAll)
.andRoute(GET("/{id}"), handler::getMovie)
.andRoute(GET("/events/{id}"), handler::eventStream)
.andRoute(GET("/**"), handler::getMovies)
;
}
Example #24
Source File: HttpServerConfig.java From Spring-5.0-Cookbook with MIT License | 5 votes |
public ServletRegistrationBean routeServlet1(RouterFunction<?> routerFunction) throws Exception {
HttpHandler httpHandler = RouterFunctions.toHttpHandler(routerFunction );
ServletHttpHandlerAdapter servlet = new ServletHttpHandlerAdapter(httpHandler);
ServletRegistrationBean registrationBean = new ServletRegistrationBean<>(servlet, "/flux" + "/*");
registrationBean.setLoadOnStartup(1);
registrationBean.setAsyncSupported(true);
System.out.println("starts server");
return registrationBean;
}
Example #25
Source File: ReactiveControllers.java From Spring-5.0-Cookbook with MIT License | 5 votes |
@Bean
public RouterFunction<ServerResponse> departmentServiceBox(){
return route(GET("/listFluxDepts"), dataHandler::deptList)
.andRoute(GET("/selectDeptById/{id}"), dataHandler::chooseDeptById)
.andRoute(POST("/selectFluxDepts"), dataHandler::chooseFluxDepts)
.andRoute(POST("/saveDept"), dataHandler::saveDepartmentMono)
.andRoute(GET("/countDepts"), dataHandler::countDepts);
}
Example #26
Source File: ExportManageServerRunner.java From sofa-lookout with Apache License 2.0 | 5 votes |
/**
* 暴露6200管理端口
*/
@Override
public void run(ApplicationArguments args) throws Exception {
RouterFunction manageRouterFunction = RouterFunctions
.route(RequestPredicates.GET("/ok"), req -> {
return ServerResponse.ok()
.syncBody("online");
})
.andRoute(RequestPredicates.GET("/cmd/{line}"), request -> {
String pathVar = request.pathVariable("line");
try {
if ("down".equals(pathVar)) {
refuseRequestService.setRefuseRequest(true);
} else if ("up".equals(pathVar)) {
refuseRequestService.setRefuseRequest(false);
}
return ServerResponse.ok().body(Mono.just("ok"), String.class);
} catch (Throwable e) {
LOGGER.error("{} request err!", pathVar, e);
return ServerResponse.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
});
HttpHandler handler = RouterFunctions.toHttpHandler(manageRouterFunction);
int managePort = serverPort - 1000;
ReactorHttpHandlerAdapter inboundAdapter = new ReactorHttpHandlerAdapter(handler);
// manage port
HttpServer.create().port(managePort).handle(inboundAdapter).bind();
// HttpServer.create(managePort).newHandler(inboundAdapter).block();
LOGGER.info("management services run on port:{}", managePort);
}
Example #27
Source File: StaticContentConfig.java From tutorials with MIT License | 5 votes |
@Bean
public RouterFunction<ServerResponse> htmlRouter(@Value("classpath:/public/index.html") Resource html) {
return route(
GET("/"),
request -> ok()
.contentType(MediaType.TEXT_HTML)
.syncBody(html)
);
}
Example #28
Source File: TraceWebFluxTests.java From spring-cloud-sleuth with Apache License 2.0 | 5 votes |
@Bean
RouterFunction<ServerResponse> route() {
return RouterFunctions.route()
.GET("/api/fn/{id}", serverRequest -> ServerResponse.ok()
.bodyValue(serverRequest.pathVariable("id")))
.build();
}
Example #29
Source File: HttpServerConfig.java From Spring-5.0-Cookbook with MIT License | 5 votes |
public ServletRegistrationBean routeServlet1(RouterFunction<?> routerFunction) throws Exception {
HttpHandler httpHandler = RouterFunctions.toHttpHandler(routerFunction );
ServletHttpHandlerAdapter servlet = new ServletHttpHandlerAdapter(httpHandler);
ServletRegistrationBean registrationBean = new ServletRegistrationBean<>(servlet, "/flux" + "/*");
registrationBean.setLoadOnStartup(1);
registrationBean.setAsyncSupported(true);
System.out.println("starts server");
return registrationBean;
}
Example #30
Source File: DemoApplication.java From spring-reactive-sample with GNU General Public License v3.0 | 5 votes |
@Bean
public RouterFunction<ServerResponse> routes(PostHandler postController) {
return route(GET("/posts"), postController::all)
.andRoute(POST("/posts"), postController::create)
.andRoute(GET("/posts/{id}"), postController::get)
.andRoute(PUT("/posts/{id}"), postController::update)
.andRoute(DELETE("/posts/{id}"), postController::delete);
}