更简洁的参数校验,使用 FluentValidation 对参数进行校验
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更简洁的参数校验,使用 FluentValidation 对参数进行校验相关的知识,希望对你有一定的参考价值。
在开发接口时,如果要对参数进行校验,你会怎么写?编写 if-else 吗?虽然也能达到效果,但是不够优雅。今天,推荐一种更简洁的写法,使用 FluentValidation 对方法参数进行校验,特别是在编写 Controller 层的方法时,直接使用一个注解即可完成参数校验。
FluentValidation 是一个使用 Linq 表达式,非常流畅的小型业务对象验证组件。流畅也可以说优雅。类似链式操作。易于理解,功能完善。还可以配合 MVC 使用直接在页面进行验证,当你看到它的语法时,非常优雅,非常令人心动。
在控制器中使用[Required]和[StringLength]特性标记:
public class User
[Required]
public string Name get; set;
[StringLength(20)]
public string Password get; set;
public class UserController : Controller
public IActionResult Create([FromBody] User user)
// to do
使用ModelState.IsValid方法进行参数校验:
public IActionResult Create([FromBody] User user)
if (ModelState.IsValid)
// to do
else
// to do
使用FluentValidation库进行参数校验:
public class UserValidator : AbstractValidator<User>
public UserValidator()
RuleFor(user => user.Name).NotEmpty();
RuleFor(user => user.Password).Length(6, 20);
public class UserController : Controller
private readonly IValidator<User> _validator;
public UserController(IValidator<User> validator)
_validator = validator;
public IActionResult Create([FromBody] User user)
if (_validator.Validate(user).IsValid)
// to do
else
// to do
在实际开发中,我们可以使用 FluentValidation提供的注解进行参数校验,提高代码的可读性,避免编写大量的 if-else 代码块和重复的校验语句。
以上是关于更简洁的参数校验,使用 FluentValidation 对参数进行校验的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot - 使用Assert校验让业务代码更简洁