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

OSCHINA-MIRROR/magey-iTool-Validator

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 )

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

Введение

Для проверки данных в .NET Core Web API, посмотрите, как я элегантно реализовал фреймворк для проверки данных. Развернуть Свернуть
Apache-2.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