1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/magey-iTool-Validator

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 18:05 3b212b0

iTool-Validator

Введение

Используется для проверки данных в проектах API на основе .NET Core. Простота использования: необходимо сосредоточиться только на бизнес-логике, никакого вмешательства в исходный код.

Инструкция по установке

Скачайте пример проекта и распакуйте его.

Как использовать? Всего 2 шага

  1. Создайте класс валидатора TestControllerValidatorAttribute.
  2. Добавьте атрибут к соответствующему контроллеру.

Пример класса валидатора:

public class TestControllerValidatorAttribute : ControllerValidatorAttribute
{
    public void Post(TestModel model)
    {
        if (model.id > 100)
            throw new Exception("Я, кажется, вас не понимаю");

        model.userName = "Как бы вы ни назывались, я всё равно вас изменю, так или иначе";
    }
}

Использование в контроллере:

[TestControllerValidator]
public class ValuesController : ControllerBase
{
    [HttpPost]
    public ActionResult<TestModel> Post(TestModel model)
    {
        return model;
    }
}

Запрос

POST http://localhost:20412/api/values DATA = {id:12}

Ответ:

// Ответ
{
  "id": 12,
  "userName": "Как бы вы ни назывались, я всё равно вас изменю, так или иначе"
}

POST http://localhost:20412/api/values DATA = { id: 101, userName: "Привет" }

Ответ:

// Ответ
{
  "code": 10003,
  "info": "Я, кажется, вас не понимаю",
  "data": ""
}

Пользовательский формат возвращаемых данных

Базовый класс предоставляет реализацию по умолчанию для метода ValidatorError(string error).

Пример:

// Переопределение метода возврата
public override object ValidatorError(string error)
{
    return new
            {
                code = 1,
                info = error,
                data11 = "Что хочу, то и делаю"
            };
}


// Формат возвращаемых данных:
{
  "code": 1,
  "info": "Я, кажется, вас не понимаю",
  "data11": "Что хочу, то и делаю"
}

Эффективность в трёх случаях

  1. При первом запуске происходит инициализация конфигурационной информации. Время зависит от количества категорий. Простой тест показывает результат: (20 + (n*0.2)) мс. Это происходит только при первом запуске.
  2. Если данные не соответствуют требованиям, скорость отклика выше, чем при проверке внутри контроллера.
  3. После первого запуска нормальная обратная связь занимает около 400 микросекунд (0,4 мс), что можно игнорировать.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/magey-iTool-Validator.git
git@api.gitlife.ru:oschina-mirror/magey-iTool-Validator.git
oschina-mirror
magey-iTool-Validator
magey-iTool-Validator
master