使用参数属性对.Net WebApi参数校验
.Net WebApi进行优雅的参数校验
受到了spring boot中注解校验参数的启发,于是想,难道微(巨)软(硬)的.net不行吗? 于是有了本次尝试。
当我们日常开发webapi接口时,难免会有一堆参数校验,例如校验参数是否为空,密码长度……
条件校验
一般的操作是下面这样的:
emm……目前这是2个字段参数,如果参数很多,那这个老太太裹脚布一般的 if 条件,看着就很难受(当然这样写丝毫没有问题)。响应结果如下:
属性校验
说完了一般的操作,那不一般的操作是啥样?
在dto参数对象的字段加上校验属性,然后我们可以甩掉裹脚布了,放心大胆的写代码了。
屏蔽了if条件之后,响应结果如下:
可以看到,直接就是参数无效,返回状态码400。输入部分参数之后结果如下:
完整正确的输入参数之后,请求通过:
看到这,想必会有个疑问,这是 post 请求,参数在 body 里边,有字段。那要是 get 请求,参数在 url 里,没有字段,怎么加属性校验?
继续往下看
可以看到,属性依然可以使用的啦~,响应结果如下:
使用属性的方式来进行参数校验,是不是很优雅呢?这样减少了很多的 if 条件代码,代码也会清爽干净不少,赶紧用起来吧。
属性说明
使用注解需要添加 System.ComponentModel.DataAnnotations
命名空间,在VS中,正确键入属性后,会自动提示添加引用的。
注意看这个库的名称DataAnnotations
-数据注解。那为什么又叫属性呢,因为我们上面使用的注解(属性)都是以Attribute后缀的,且都派生自属性基类Attribute
,只不过在使用时,编辑器自动隐藏了后缀。因此从名称上看叫它属性
,似乎更合理(纯属个人瞎猜,也可能是微软向跟java中注解区分开吧=.=),本文中注解和属性意义相同
可以看到这个库中有很多属性
这里对上面的代码中使用到的属性进行说明:
- Required : 表示必须,此参数非空,ErrorMessage 是错误提示信息
- MaxLength :最大长度,可指定最大长度 ,错误提示信息
- MinLength : 最小长度,可指定最小长度,错误提示信息
- FromBody : 表示参数放入 body 中进行传递
- FromUri : 表示参数作为 url 一部分
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17571978.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2014-07-21 系列文章--SharePoint 开发教程