vipwan/Biwen.QuickApi

提供[FromQuery][FromHeader]绑定器绑定复杂类型和数组的支持

vipwan opened this issue · 0 comments

vipwan commented
[Description("比如tags=hello&tags=world")]
[FromQuery]
public string[]? Tags { get; set; }

[Description("querystring比如?member={\"id\":\"123\",\"userName\":\"vipwan\"}")]
[FromQuery(Name = "member")]
public Member CurrentMember { get; set; }

[Description("header比如{\"id\":\"123\",\"userName\":\"vipwan\"}")]
[FromHeader(Name = "headmember")]
public Member CurrentMemberFromHeader { get; set; }

public record Member(string Id,string UserName);

//并且支持属性多级的校验
public HelloApiRequest()
{
    RuleFor(x=>x.CurrentMember.UserName).EmailAddress();
    //请注意多级验证务必添加When表达式
    RuleFor(x=>x.CurrentMemberFromHeader.UserName).EmailAddress().When(x => x.CurrentMemberFromHeader!= null);
}