Как добавить глобальную проверку для ASP. NET Core web api? - PullRequest
0 голосов
/ 11 марта 2020

Допустим, у нас есть несколько моделей со свойствами, такими как (электронная почта, имя, адрес). В дополнение к этим обязательным полям, электронная почта принимает @, в то время как адрес принимает # & et c ..

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

Я новичок в веб-API, и хотел бы, чтобы это реализовывалось где-то в startup.cs. Любое предложение будет полезно.

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете использовать FluentValidation. Нажмите здесь

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

public class MyValidator: AbstractValidator<Customer> {
  public CustomerValidator() {
    RuleFor(x => x.Surname).NotEmpty();
    RuleFor(x => x.Forename).NotEmpty().WithMessage("Please specify a first name");
    RuleFor(x => x.Discount).NotEqual(0).When(x => x.HasDiscount);
    RuleFor(x => x.Address).Length(20, 250);
    RuleFor(x => x.Postcode).Must(BeAValidPostcode).WithMessage("Please specify a valid postcode");
  }



  private bool BeAValidPostcode(string postcode) {
    // custom postcode validating logic goes here
  }
}

В вашем случае вы можете просто заменить AbstractValidator<Customer> базовым типом, который является производным AbstractValidator<Customer> от этого, вы может делать то, что вам когда-либо нужно для проверки на вашем базовом DTO. хотя я думаю, что есть некоторые apis на ваше приложение не принимает никаких параметров.

для меня, это самый эффективный и чистый способ.

Надеюсь, что помогло ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...