手把手教你AspNetCore WebApi数据验证的实现

2022-07-27,,,,

前言

小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。

传统验证

小明写着写着发现这样写,很多接口相同得地方都要写,使得代码比较臃肿。

使用模型验证

在参数模型上打上注解

postman测试name传值未空时,则返回:

注意web api 控制器具有 [apicontroller] 特性,则它们不必检查modelstate.isvalid。在此情况下,如果模型状态无效,将返回包含错误详细信息的自动 http 400 响应。

内置特性

  • [creditcard]:验证属性是否具有信用卡格式。
  • [compare]:验证模型中的两个属性是否匹配。
  • [emailaddress]:验证属性是否具有电子邮件格式。
  • [phone]:验证属性是否具有电话号码格式。
  • [range]:验证属性值是否在指定的范围内。
  • [regularexpression]:验证属性值是否与指定的正则表达式匹配。
  • [required]:验证字段是否不为 null。
  • [stringlength]:验证字符串属性值是否不超过指定长度限制。
  • [url]:验证属性是否具有 url 格式。
  • [remote]:通过在服务器上调用操作方法来验证客户端上的输入。

error messages

通过验证特性可以指定要为无效输入显示的错误消息。 例如:

使用自定义返回消息格式

有两种方式:

  • 使用自定义过滤器
  • 使用默认模型验证,需要在控制器上面加上【apicontroller】。

使用自定义过滤器

首先,创建modelvalidateactionfilterattribute过滤器。

然后,startup.configureservices将过滤器添加到控制器中并关闭默认模型验证,另外我们还添加了addnewtonsoftjson。

最后,我们看一下返回效果:

使用默认模型验证

小结

目前为止,小明把数据验证也搞定了,是不是so easy!

到此这篇关于手把手教你aspnetcore webapi数据验证的实现的文章就介绍到这了,更多相关aspnetcore webapi数据验证内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

《手把手教你AspNetCore WebApi数据验证的实现.doc》

下载本文的Word格式文档,以方便收藏与打印。