我正在尝试在我的项目中使用 Fluent Validator。到目前为止,我的大多数教程都是使用 post 请求,其中您有一个 json 正文作为对象,并且该对象将由 Fluent Validator 进行验证。
但是,如果我想使用 Fluent Validator 进行 GET 请求怎么办?该 GET 请求是否需要有 json 正文?如果是这样,那么 GET 拥有主体是否会被认为是一种不好的做法?
例如:下面是一个例子。我想在允许执行之前先验证开始和结束年份。我该如何使用 Fluent Validator 来做到这一点?
谢谢你
[HttpGet("preview/secured", Name = nameof(GetPreviewSecuredTaxBillData))]
public IActionResult GetPreviewSecuredTaxBillData([FromQuery] int start, [FromQuery] int end, [FromQuery] string skip, [FromQuery] int pageNumber, [FromQuery] int pageSize)
{
var taxBills = securedTaxBillService.GetSecuredTaxBills(pageNumber, pageSize);
return Ok(taxBills);
}
一般来说,没有理由在GET请求中避免验证作为通用规则。 FluentValidation 足够快,可以在 GET 中完成工作,而响应时间不会让最终用户感到意外。 一般情况是仅使用来自某些内部源(例如数据库)的有效数据进行响应。或者将一些参数绑定到模型对象,然后验证它。通常,您创建或解决或强制在ASP.NET生命周期中工作您的验证器对象,在模型对象上使用它并根据结果返回。
希望对您有帮助。