Это простой Mono<Map<String, String>>
вопрос webflux.Во-первых, класс маршрутизатора
public RouterFunction<ServerResponse> routesUser(UserHandler handler) {
return RouterFunctions.route(RequestPredicates.GET("/route/user/all"), handler::findAll)
.andRoute(RequestPredicates.POST("/route/user/login"), handler::authenticate);
И следующий - клиентские коды веб-клиента.
Map<String, String> mapUser = new HashMap<String, String>();
mapUser.put("username", "joseph");
mapUser.put("password", "password");
client.post().uri("/route/user/login").body(Mono.just(mapUser), Map.class).exchange()
.map(ClientResponse::statusCode).subscribe(response -> System.out.println("Login : " + response.getReasonPhrase()));
Map<String, String> mapUser
успешно передан в класс обработчика webflux.
У меня есть основной вопрос о методе authenticate класса userhandler.
public Mono<ServerResponse> authenticate(ServerRequest request) {
Mono<Map<String, String>> monoMapUser = request.bodyToMono(Map.class);
monoMapUser.map(m -> {
return m.get("username");
}).subscribe(System.out::println);
monoMapUser.subscribe(System.out::println)
выводит правильное имя пользователя joseph.
Как мне извлечь имя пользователя и пароль из monoMapUser следующим образом?
String username = monoMapUser.map(m -> {return m.get("username");}.(????)
String password = monoMapUser.map(m -> {return m.get("password");}.(????)