core swagger 参数验证
1.FileTypeDto实体类添加属性 Required
/// <summary>
/// 分类名称
/// </summary>
[Required(ErrorMessage = "分类名称不能为空")]
public string TypeName { get; set; }
//参数验证示例
/*
[ValidateNever]:指示属性或参数应从验证中排除。
[CreditCard]:验证属性是否具有信用卡格式。
[Compare]:验证模型中的两个属性是否匹配。
[EmailAddress]:验证属性是否具有电子邮件格式。
[Phone]:验证属性是否具有电话号码格式。
[Range]:验证属性值是否在指定的范围内。
[RegularExpression]:验证属性值是否与指定的正则表达式匹配。
[Required]:验证字段是否不为 null。
[StringLength]:验证字符串属性值是否不超过指定长度限制。
[URL]:验证属性是否具有 URL 格式。
[Remote]:通过在服务器上调用操作方法来验证客户端上的输入。
*/
//[Required(ErrorMessage = "检测日期不能为空")]
//[StringLength(10, ErrorMessage = "名字长度不能超过10个字符!")]
//[Phone(ErrorMessage = "手机格式错误!")]
2.Controller写法
[HttpPost]
[AuthorizeFilter]
public async Task<TData<string>> SaveForm([FromBody] FileTypeDto dto)
{
return await fileTypeBLL.SaveForm(new TransExp<FileTypeDto, FileTypeEntity>().Trans(dto));
}
3.AuthorizeFilter过滤器写法,重写OnActionExecution方法,增加参数校验
/// <summary>
/// 异步接口日志
/// </summary>
/// <param name="context"></param>
/// <param name="next"></param>
/// <returns></returns>
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
#region 参数校验
System.Collections.Generic.List<string> errors = context.ModelState
.Values
.SelectMany(x => x.Errors
.Select(p => p.ErrorMessage))
.ToList();
if(errors.Count()>0)
{
// 统一返回格式
TData<string> result = new TData<string>()
{
Message = errors.FirstOrDefault()
};
context.Result = new JsonResult(result);
return;
}
#endregion
4.最终效果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!