.net core接口参数校验
时间: 2023-07-31 10:12:27 浏览: 67
在 .NET Core 中,我们可以使用 Data Annotations 和 FluentValidation 这两种方式来进行接口参数校验。
1. Data Annotations
Data Annotations 是 .NET 中自带的一种属性验证方式。我们可以通过在接口参数上添加 Data Annotations 的方式来实现参数校验。
例如,我们可以在一个用户名参数上添加 Required 和 MaxLength 属性来实现必填和最大长度的校验:
```csharp
public IActionResult Register([Required] string username, [MaxLength(20)] string password)
{
// ...
}
```
2. FluentValidation
FluentValidation 是一种基于 Fluent API 的验证框架,它可以让我们更方便地编写、维护和扩展验证规则。
例如,我们可以创建一个 UserValidator 类来实现用户名和密码的校验:
```csharp
public class UserValidator : AbstractValidator<User>
{
public UserValidator()
{
RuleFor(x => x.Username).NotEmpty().MaximumLength(20);
RuleFor(x => x.Password).NotEmpty();
}
}
public class User
{
public string Username { get; set; }
public string Password { get; set; }
}
public IActionResult Register(User user)
{
var validator = new UserValidator();
var result = validator.Validate(user);
if (!result.IsValid)
{
return BadRequest(result.Errors);
}
// ...
}
```
在上面的示例中,我们使用 FluentValidation 定义了一个 UserValidator 类,并在其中定义了验证规则。在 Register 方法中,我们创建了一个 User 对象,并将其传递给 UserValidator 的 Validate 方法进行验证。如果验证失败,则返回 BadRequest 响应。