@SuppressWarnings("unchecked") public Mono<ServerResponse> variables(ServerRequest request) { Map<String, String> pathVariables = request.pathVariables(); Map<String, String> attributePathVariables = (Map<String, String>) request.attributes().get(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE); assertTrue( (pathVariables.equals(attributePathVariables)) || (pathVariables.isEmpty() && (attributePathVariables == null))); PathPattern pathPattern = matchingPattern(request); String pattern = pathPattern != null ? pathPattern.getPatternString() : ""; Flux<String> responseBody; if (!pattern.isEmpty()) { responseBody = Flux.just(pattern, "\n", pathVariables.toString()); } else { responseBody = Flux.just(pathVariables.toString()); } return ServerResponse.ok().body(responseBody, String.class); }
Mono<ServerResponse> string(ServerRequest request) { return ServerResponse.ok() .contentType(MediaType.TEXT_EVENT_STREAM) .body(INTERVAL.map(aLong -> "foo " + aLong), String.class); }
public Mono<ServerResponse> route2(ServerRequest request) { assertThat((ServiceRequestContext) RequestContext.current()).isNotNull(); return Mono.from(request.bodyToMono(Map.class)) .map(map -> assertThat(map.get("a")).isEqualTo(1)) .then(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON) .body(BodyInserters.fromObject("[\"route\"]"))); } }
private Mono<ServerResponse> omsHttpGet(ServerRequest req) { ResultBean resultBean = new ResultBean(1, "msg", "this is oms get hello world"); return ok().body(Mono.just(resultBean), ResultBean.class); }
private Mono<ServerResponse> postHandler(ServerRequest req) { final Mono<String> string = req.bodyToMono(String.class); //ResultBean resultBean = new ResultBean(1, "msg", "post hello world"); return ok().body(string, String.class); }
private Mono<ServerResponse> pdmHttpGet(ServerRequest req) { ResultBean resultBean = new ResultBean(1, "msg", "this is pdm get hello world"); return ok().body(Mono.just(resultBean), ResultBean.class); }
private Mono<ServerResponse> getHandler(ServerRequest req) { final Mono<RequestDTO> requestBeanMono = req.bodyToMono(RequestDTO.class); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } ResultBean resultBean = new ResultBean(1, "msg", "post hello world 1s"); return ok().body(Mono.just(resultBean), ResultBean.class); }
private Mono<ServerResponse> testRetry(ServerRequest req) { int i = ATOMIC_INTEGER.incrementAndGet(); System.out.println("Retry count: " + i); ResultBean resultBean = new ResultBean(1, "msg", "this is retry hello world"); return ok().body(Mono.just(resultBean), ResultBean.class); }
@Bean public RouterFunction<ServerResponse> testWhenMetricPathIsNotMeet() { RouterFunction<ServerResponse> route = RouterFunctions.route( RequestPredicates.path("/actuator/metrics/gateway.requests"), request -> ServerResponse.ok().body(BodyInserters.fromObject(HELLO_FROM_FAKE_ACTUATOR_METRICS_GATEWAY_REQUESTS))); return route; }
@Bean public RouterFunction<ServerResponse> testFunRouterFunction() { RouterFunction<ServerResponse> route = RouterFunctions.route( RequestPredicates.path("/testfun"), request -> ServerResponse.ok().body(BodyInserters.fromObject("hello"))); return route; }
public Mono<ServerResponse> route(ServerRequest request) { assertThat((ServiceRequestContext) RequestContext.current()).isNotNull(); return ServerResponse.ok().contentType(MediaType.TEXT_PLAIN) .body(BodyInserters.fromObject("route")); }
@Override public Mono<ServerResponse> handle(ServerRequest request) { HttpMethod method = request.method(); if (method != null) { switch (method) { case GET: return EntityResponse.fromObject(this.resource).build() .map(response -> response); case HEAD: Resource headResource = new HeadMethodResource(this.resource); return EntityResponse.fromObject(headResource).build() .map(response -> response); case OPTIONS: return ServerResponse.ok() .allow(SUPPORTED_METHODS) .body(BodyInserters.empty()); } } return ServerResponse.status(HttpStatus.METHOD_NOT_ALLOWED) .allow(SUPPORTED_METHODS) .body(BodyInserters.empty()); }
@Test public void andOther() { HandlerFunction<ServerResponse> handlerFunction = request -> ServerResponse.ok().body(fromObject("42")); RouterFunction<?> routerFunction1 = request -> Mono.empty(); RouterFunction<ServerResponse> routerFunction2 = request -> Mono.just(handlerFunction); RouterFunction<?> result = routerFunction1.andOther(routerFunction2); assertNotNull(result); MockServerRequest request = MockServerRequest.builder().build(); Mono<? extends HandlerFunction<?>> resultHandlerFunction = result.route(request); StepVerifier.create(resultHandlerFunction) .expectNextMatches(o -> o.equals(handlerFunction)) .expectComplete() .verify(); }
private Mono<ServerResponse> handlerMethod(ServerRequest request) { return ServerResponse.ok().body(fromObject("42")); }
public Mono<ServerResponse> postMono(ServerRequest request) { Mono<Person> personMono = request.body(toMono(Person.class)); return ServerResponse.ok().body(fromPublisher(personMono, Person.class)); }
public Mono<ServerResponse> flux(ServerRequest request) { Person person1 = new Person("John"); Person person2 = new Person("Jane"); return ServerResponse.ok().body( fromPublisher(Flux.just(person1, person2), Person.class)); } }
Mono<ServerResponse> person(ServerRequest request) { return ServerResponse.ok() .contentType(MediaType.TEXT_EVENT_STREAM) .body(INTERVAL.map(aLong -> new Person("foo " + aLong)), Person.class); }
public Mono<ServerResponse> mono(ServerRequest request) { Person person = new Person("John"); return ServerResponse.ok().body(fromPublisher(Mono.just(person), Person.class)); }
Mono<ServerResponse> sse(ServerRequest request) { Flux<ServerSentEvent<String>> body = INTERVAL .map(aLong -> ServerSentEvent.builder("foo").id("" + aLong).comment("bar").build()); return ServerResponse.ok().body(fromServerSentEvents(body)); } }
public Mono<ServerResponse> flux(ServerRequest request) { Person person1 = new Person("John"); Person person2 = new Person("Jane"); return ServerResponse.ok().body( fromPublisher(Flux.just(person1, person2), Person.class)); } }