Я только начал изучать весенний веб-поток. и есть полное изменение или перспектива того, как выполнять работу в реактивном программировании вместо императивного программирования.
Итак, я хотел бы получить очень простой вывод.
У меня есть класс ответа с поля success, message и List data.
@Data
@Accessors(chain = true)
public class Response {
private boolean success;
private String message;
private List data;
}
и класс запросов
@Data
@Accessors(chain = true)
public class LoginRequest {
private String email;
private String password;
}
У меня также есть userRepository с webFlux.
Mono<User> findUserByEmail(String email);
и у меня есть действие входа в систему, подобное этому.
@PostMapping("/login")
public Mono<Response> login(@RequestBody Mono<LoginRequest> request) {
}
Теперь я должен вернуть ответ, основываясь на том, что дал мне userRepository.
- Он может вернуть ноль, если ни один пользователь не присутствует
- Это может дать мне объект класса User, если пользователь найден
- Теперь я должен проверить, совпадает ли пароль с паролем, указанным в LoginRequest
Так что я должен изменить ответ в зависимости от пользователя хранилище, например, если пользователь не найден
- Я должен вернуть ответ с успехом = false и сообщением = "Пользователь не найден", если пользователь найден с неверным паролем
- Я должен вернуть ответ с SUC cess = false и message = "неверный пароль", и если все хорошо, тогда
- Я должен вернуть success = true, message = "Welcome" и список с именем пользователя, адресом электронной почты и т. д. c.
Я перепробовал много способов, но в конце концов мне это не удалось.