数据验证
2024年6月13日小于 1 分钟
数据验证
使用 ValidationAttribute 的子类特性来验证请求参数值和响应结果。
参数值验证
public interface IUserApi
{
[HttpGet("api/users/{email}")]
Task<User> GetAsync(
[EmailAddress, Required] // 这些验证特性用于请求前验证此参数
string email);
}
请求或响应模型验证
请求和相应用到的 User 的两个属性值都得到验证。
public interface IUserApi
{
[HttpPost("api/users")]
Task<User> PostAsync([Required][JsonContent] User user);
}
public class User
{
[Required]
[StringLength(10, MinimumLength = 1)]
public string Account { get; set; }
[Required]
[StringLength(10, MinimumLength = 1)]
public string Password { get; set; }
}
关闭数据验证功能
数据验证功能默认是开启的,可以在接口的 HttpApiOptions 配置关闭数据验证功能。
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpApi<IUserApi>().ConfigureHttpApi(o =>
{
// 关闭数据验证功能,即使打了验证特性也不验证。
o.UseParameterPropertyValidate = false;
o.UseReturnValuePropertyValidate = false;
});
}