Spring Boot: как выполнить проверку REST на основе группы ввода? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть форма, в которой:

  1. имя и фамилия являются обязательными полями для зарегистрированного пользователя.
  2. ssn для нового пользователя.
  3. номер договора для владельца.

Таким образом, при нажатии кнопки отправки вызывается REST API (API подключения) со значениями излюбая из перечисленных выше групп.


В моем классе бинов есть члены:

  1. FN
  2. LN
  3. SSN
  4. contractNum

Как выполнить проверку с использованием средства проверки bean / hibernate и определить, какиегруппа прошла?

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Bean Validation лучше всего использовать для простой логики проверки.Если ваша проверка требует большей сложности, вместо этого используйте интерфейс Spring * Validator .

Я не знаю контекстную область, поэтому я просто назову ваш компонент "Form" со всеми Stringполя для примера:

public class Form {

    private String firstName;

    private String lastName;

    private String ssn;

    private String contractNumber;

   // getters and setters
}

Затем создайте валидатор для этого класса:

public class FormValidator implements Validator {

    public boolean supports(Class clazz) {
        return Form.class.isAssignableFrom(clazz);
    }

    public void validate(Object target, Errors errors) {
        Form form = (Form) target;

        // validation logic
    }
}

Затем вы можете просто использовать его так:

Form form = ...;
Validator validator = new FormValidator();
Errors errors = new Errors();

validator.validate(form, errors);

if (errors.hasErrors() {
    // not valid
} else {
    // is valid
}
0 голосов
/ 22 сентября 2019

Из документации Hibernate вы можете прочитать подробно

https://hibernate.org/validator/

Hibernate Validator позволяет выражать и проверять ограничения приложения.Источником метаданных по умолчанию являются аннотации с возможностью переопределения и расширения с использованием XML.Он не привязан к определенному уровню приложений или модели программирования и доступен как для серверных, так и для клиентских приложений.Но простой пример говорит более 1000 слов:

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class User {

   @NotNull
   private String firstName;

   @NotNull
   private String lastName;

   @NotNull
   private String ssn;


}
...