【发布时间】:2021-09-16 22:26:53
【问题描述】:
以下是我用来创建函数并尝试使用 Fluent Validation 验证模型的示例。它们是 2 个不同的功能 TestUser 和 AdminUser,我正在编写类来检查验证。他们还有其他有效的方法来为这些模型验证创建通用方法吗?
[FunctionName("TestUser")]
public async Task<IActionResult> PostTestUser(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "api/v1/Test")][RequestBodyType(typeof(TestUser)] TestUser testUser)
{
TestUserValidator validator = new TestUserValidator();
var validatedTestUser = validator.Validate(testUser);
if (!validatedTestUser.IsValid)
return BadRequestResponse(validatedTestUser);
}
public class TestUser
{
[JsonProperty("Id", Order = 1)]
public Guid Id { get; set; }
[JsonProperty("name", Order = 2)]
public string Name { get; set; }
}
public class TestUserValidator : AbstractValidator<TestUser>
{
public TestUserValidator()
{
RuleFor(_=> _.Id).Cascade(CascadeMode.Stop).NotNull().WithMessage("Required").CheckGuid();
RuleFor(_=> _.Name).Cascade(CascadeMode.Stop).NotNull().WithMessage("NameRequired");
}
[FunctionName("AdminUser")]
public async Task<IActionResult> PostAdminUser (
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "api/v1/admin")][RequestBodyType(typeof(AdminUser)] AdminUser adminUser )
{
AdminUserValidator validator = new AdminUserValidator();
var validatedAdminUser = validator.Validate(adminUser);
if (!validatedAdminUser.IsValid)
return BadRequestResponse(validatedAdminUser);
}
public class AdminUser
{
[JsonProperty("Id", Order = 1)]
public Guid Id { get; set; }
[JsonProperty("admin_name", Order = 2)]
public string AdminName{ get; set; }
}
public class AdminUserValidator: AbstractValidator<AdminUser>
{
public AdminUserValidator()
{
RuleFor(_=> _.Id).Cascade(CascadeMode.Stop).NotNull().WithMessage(Resources.FieldRequired).CheckGuid();
RuleFor(_=> _.AdminName).Cascade(CascadeMode.Stop).NotNull().WithMessage("AdminNameRequired");
}
【问题讨论】:
标签: c# asp.net-core .net-core azure-functions fluentvalidation