@Test public void headers() { HttpHeaders newHeaders = new HttpHeaders(); newHeaders.set("foo", "bar"); Mono<ServerResponse> result = ServerResponse.ok().headers(headers -> headers.addAll(newHeaders)).build(); StepVerifier.create(result) .expectNextMatches(response -> newHeaders.equals(response.headers())) .expectComplete() .verify(); }
@SuppressWarnings({ "unchecked" }) public <T> RouterFunction<?> functionEndpoints() { return route(POST("/"), request -> { Class<T> outputType = (Class<T>) this.inspector.getOutputType(this.function); FunctionWrapper wrapper = RequestProcessor.wrapper(function, null, null); Mono<ResponseEntity<?>> stream = request.bodyToMono(String.class) .flatMap(content -> processor.post(wrapper, content, false)); return stream.flatMap(entity -> status(entity.getStatusCode()) .headers(headers -> headers.addAll(entity.getHeaders())) .body(Mono.just((T) entity.getBody()), outputType)); }); }
@SuppressWarnings({ "unchecked" }) public <T> RouterFunction<?> functionEndpoints() { return route(POST("/"), request -> { Class<T> outputType = (Class<T>) this.inspector.getOutputType(this.function); FunctionWrapper wrapper = RequestProcessor.wrapper(function, null, null); Mono<ResponseEntity<?>> stream = request.bodyToMono(String.class) .flatMap(content -> processor.post(wrapper, content, false)); return stream.flatMap(entity -> status(entity.getStatusCode()) .headers(headers -> headers.addAll(entity.getHeaders())) .body(Mono.just((T) entity.getBody()), outputType)); }); }