Example usage for org.springframework.web.reactive.function.server ServerRequest bodyToMono

List of usage examples for org.springframework.web.reactive.function.server ServerRequest bodyToMono

Introduction

In this page you can find the example usage for org.springframework.web.reactive.function.server ServerRequest bodyToMono.

Prototype

<T> Mono<T> bodyToMono(ParameterizedTypeReference<T> typeReference);

Source Link

Document

Extract the body to a Mono .

Usage

From source file:top.zhacker.ms.reactor.spring.function.handler.PersonHandler.java

public Mono<ServerResponse> createPerson(ServerRequest request) {
    Mono<Person> person = request.bodyToMono(Person.class);
    return ServerResponse.ok().build(this.repository.savePerson(person));
}

From source file:com.example.message.MessageEndpoint.java

private Mono<ServerResponse> createMessage(final ServerRequest request) {
    final Mono<Message> messageMono = request.principal().cast(UsernamePasswordAuthenticationToken.class)
            .map(UsernamePasswordAuthenticationToken::getPrincipal).cast(AuthenticatedUser.class)
            .map(AuthenticatedUser::getUser)
            .flatMap(user -> request.bodyToMono(TextMessage.class).map(message -> message.toMessage(user)))
            .flatMap(messageRepository::save);
    return messageMono
            .map(message -> request.uriBuilder().path("/messages/{message_id}").build(message.getId()))
            .map(ServerResponse::created).flatMap(res -> res.body(messageMono, Message.class));
}