На данный момент я бросаю RuntimeException
, чтобы вернуть ошибки проверки GraphQL. Он работает на удивление хорошо, за исключением того, что он выдает ужасные ошибки с большими трассировками стека в моих журналах.
Здесь вы можете видеть, что я проверяю отправленную новую мутацию регистрации пользователя, чтобы убедиться, что пароли совпадают, а адрес электронной почты еще не используется.
Как правильно сделать это в GraphQL SPQR Spring Boot Starter.
@GraphQLMutation (name="register")
public User register(@GraphQLArgument(name="firstname") String firstname, @GraphQLArgument(name="lastname") String lastname, @GraphQLArgument(name="email") String email, @GraphQLArgument(name="msisdn") String msisdn, @GraphQLArgument(name="password") String password, @GraphQLArgument (name="confirmPassword") String confirmPassword) {
if (userRepo.findByEmail(email) != null) {
throw new RuntimeException("User already exists");
}
if (!password.equals(confirmPassword)) {
throw new RuntimeException("Passwords do not match");
}
User newUser = new User();
//...
return userRepo.save(newUser);
}