Skip to content

DariaPolubenko/data-validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hexlet tests and linter status:

Actions Status

Test Coverage Maintainability

Описание

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

Подключение библиотеки

В консоль введите команду:

git clone git@github.com:DariaPolubenko/data-validator.git
cd data-validator

Затем введите следующую команду, чтобы создать JAR-файл:

./gradlew jar

Созданный файл находится в и дирректории ./build/libs. Скопируйте его и положите себе в проект. Как правило, в корне проекта создается дирректория "libs", куда помещается скаченный jar-файл.

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

  1. Для gradle-kotlin build system добавьте в файл build.gradle.kts следующее:
dependencies {
   implementation(files("libs/имя_файла.jar"))
}
  1. Для gradle-groovy build system, добавьте в файл build.gradle:
dependencies {
    implementation files('libs/имя_файла.jar')
}

Использование

Создайте объект:

var v = new Validator();

Укажите тип проверяемых данных:

  • v.string() - для работы со строками;
  • v.number() - для работы с числами;
  • v.map() - для работы с объектами типа Map

И составьте схему валидации:

var schema = v.string().required().minLength(5).contains("hex");

СХЕМЫ ВАЛИДАЦИИ (схемы проверок накапливаются на объектах)

1. Для строковыч значений:

  • required(): проверка на null или пустую строку
  • minLength(int n): проверка минимальной длины, принимает размер строки
  • contains(String str): проверка на содержимое указанных символов, принимает строку

2. Для целочисленныч значений:

  • required(): проверка на null,
  • positive(): проверка на знак числа
  • range(Integer min, Integer max): проверка допустимого диапазона значений, принимает два числа: минимально допустимое и максимально допустимое

3. Для словарей Map:

  • required(): проверка объекта на null
  • sizeof(Integer size): проверка размера Map, принимает размер Map
  • shape(Map<тип_проверяемых_данных, BaseSchema>): метод проверки для вложенных значений в Maр. Проверяет соответсвует ли каждое значение Map переданным схемам Принимает Map с заданными схемами проверки: каждому свойству проверяемого объекта Map привязывается свой набор ограничений (своя схема), см. "пример валидации вложенных данных"

Отправьте схему и данные на проверку, ипользуя метод isValid(объект_валидации):

schema.isValid("hexlet"); // true

Пример валидации вложенных данных:

var v = new Validator(); //создаем объект
var schema = v.map(); // указываем тип проверяемых данных

Map<String, BaseSchema<String>> schemas = new HashMap<>(); //создаем объект Map
schemas.put("firstName", v.string().required()); // для каждого значения добавляем свои схемы для проверки
schemas.put("lastName", v.string().required().minLength(2));

schema.shape(schemas); //отправлем созданные схемы проверок

Map<String, String> human1 = new HashMap<>(); //создаем объект Map, который будем проверять на валидность
human2.put("firstName", "John");
human2.put("lastName", null);
schema.isValid(human2); // проверяем данные на проверку, результат работы метода в данном примере 'false'

Map<String, String> human3 = new HashMap<>();
human3.put("firstName", "Anna");
human3.put("lastName", "B");
schema.isValid(human3); // 'false'

About

 Library that checks data validation

Resources

Stars

Watchers

Forks

Packages

No packages published