[Быстро освоить springboot] 4. Проверка параметров интерфейса

Spring Boot

предисловие

При разработке интерфейса важна проверка параметров. Правила типа и длины параметров должны быть согласованы с менеджером по продукту или техническим директором на ранней стадии разработки. Если входные параметры не проверены, очень вероятно, что некоторые недопустимые параметры вызовут сбои в работе системы.

В предыдущей статье говорилось о различных способах принятия параметров[Быстро изучите Springboot] 3. Несколько способов принять параметры. Поскольку в настоящее время наиболее часто используются параметры типа json, здесь объясняется только проверка параметров типа json. Другие типы почти такие же.

Создайте новый Param.java

public class Param {
 
 private String username;
 public String getUsername() {
 return username;
 }
 public void setUsername(String username) {
 this.username = username;
 }
}

В настоящее время этот класс имеет только одно свойство имени пользователя.

Используйте аннотацию Validated, чтобы включить проверку параметров.

@PostMapping(value = "/validate/notblank")
public Object validateNotBlank(@RequestBody @Validated Param param) {
 return param;
}

NotBlank непустое суждение

Измените Param.java и добавьте аннотацию NotBlank к свойству имени пользователя.

@NotBlank
private String username;

тестовое задание

【快学springboot】4.接口参数校验

【快学springboot】4.接口参数校验

Через консоль мы видим, что было выброшено исключение MethodArgumentNotValidException.Вышеупомянутый возвращаемый результат фактически возвращается обработчиком исключений по умолчанию Springboot.Чтобы унифицировать формат возврата данных интерфейса, нам также необходимо настроить глобальный перехватчик исключений., о чем будет рассказано в следующей лекции.

Мы также можем установить информацию об исключении через атрибут сообщения аннотации NotBlank:

@NotBlank(message = "username不可为空")
private String username;

【快学springboot】4.接口参数校验

Оценка длины строки длины

Тем не менее, что Param.java, мы добавляем аннотацию длины к имени пользователя следующим образом:

@Length(min = 2,max = 3)
@NotBlank(message = "username不可为空")
private String username;

【快学springboot】4.接口参数校验

Точно так же мы можем использовать свойство message для установки возвращаемого сообщения об ошибке. Здесь это не будет продемонстрировано.

NotNull запрещает свойствам называться null

Несмотря на то, что впереди есть аннотация NotBlank, некоторые типы упаковки, такие как Integer и Long, по-прежнему должны использовать аннотацию NotNull для оценки.

Оценка диапазона мин. и макс.

Добавьте атрибут age в Param.java и используйте аннотации Min и Max, чтобы ограничить размер.

@Min(1)
@Max(100)
private Integer age;

Проблема в том, что если возраст пуст, он не будет проверен. следующим образом:

【快学springboot】4.接口参数校验

Поэтому нам также нужно добавить аннотацию NotNull

@Min(1)
@Max(100)
@NotNull
private Integer age;

【快学springboot】4.接口参数校验

【快学springboot】4.接口参数校验

Вы также можете использовать аннотацию @Range, чтобы ограничить диапазон

@Range(min = 1, max = 100)

Электронная почта Комментарий Проверить электронную почту

@Email
private String email;

【快学springboot】4.接口参数校验

Регулярное выражение проверки аннотации шаблона

@Pattern(regexp = "\d{4}-\d{2}-\d{2}")
private String birthday;

【快学springboot】4.接口参数校验

Суммировать

Выше приведены некоторые часто используемые методы проверки параметров.Конечно, есть и очень подробные, которые не перечислены и не обработаны.При необходимости вы можете найти метод использования самостоятельно. Проверка параметров часто должна использоваться в сочетании с глобальным перехватчиком исключений, чтобы возвращаемая структура данных всегда была согласованной, чтобы облегчить интерпретацию клиентом.

В следующем разделе будет объяснен унифицированный формат возврата и глобальный перехватчик исключений.