Skip to content

Latest commit

 

History

History
54 lines (43 loc) · 1.24 KB

4_data-validation.md

File metadata and controls

54 lines (43 loc) · 1.24 KB

数据验证

使用 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;
    }); 
}