Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能

网友投稿 242 2022-10-31


Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能

背景:

上周,把 ​​Taurus.MVC​​ 在 Linux (CentOS7) 上部署任务完成后。

也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了。

以为一天能搞完,结果,好几天过去了。

本来还想集成自动化批量执行测试功能,不过想想还是放到下一版本实现吧。

感觉差不多了,就先和大伙分享一下:

Taurus.MVC Nuget 更新:

昨夜,Nuget的Package升级了一下,和源码版本做了下同步。

通常源码的版本都会比Nuget包的靠前一个小版本:

目前:​​Taurus.MVC​​​ 升级到:V2.3.0.0 (​​CYQ.Data​​ 同步升级到:V5.7.9.7)

最近版本的更新内容(好多功能都是在 CYQ.Data 里升级,所以这里记录很少):

V2.2.3.5(2017-04-19) - V 2.3 (2019-03-22)1:支持Controller分布在不同的dll中(Taurus.Controllers配置允许多个,逗号分隔)。2:支持Controller二次继承(A:B B:Taurus.Core.Controller)1:支持NetCore下的的部署(路径和大小写调整)1、增加了CMS功能的标签替换功能。2、增加参数验证属性(Require),验证是否必填写和正则格式。3、增强了参数的类型转换。4、增加WebAPI文档生成功能。5、CYQ.Data同时升级到V5.7.9.7

下面介绍一下重点功能:

一、新增几个请求属性:HttpPut、HttpHead、HttpDelete

原来只有HttpGet和HttpPost。

所以方法只能指定其中的一个,如:

[HttpGet]public void GetToken(string un, string pwd) { }

现在新增了几个,机制稍为调整了一下,还允许可以同时指定多个:

[HttpPost,HttpPut]public void GetToken(string un, string pwd) { }

二、新增参数验证属性:Require

该属性参数有4个重载:

public RequireAttribute(string paraName)public RequireAttribute(string paraName, bool isRequired, string regex)public RequireAttribute(string paraName, bool isRequired, string regex, string outParaName)public RequireAttribute(string paraName, bool isRequired, string regex, string emptyTip, string regexTip)

一共6种使用方法:

使用一:指定un参数不能为空。

[HttpGet,Require("un")]public void GetToken(string un, string pwd) { }

使用二:指定un、pwd、random三个参数都不能为空,Require可以指定多个。

[HttpPost,Require("un,pwd"),Require("random")] public void GetToken(string un, string pwd) { }

使用三:指定user实体内的UserName参数不能为空、para数组内第1个对象的Name参数不能为空。

[HttpPost,Require("user.UserName,para.0.Name"]public void GetToken(Users user,List para) { }

使用四:指定un不能为空,同时满足手机号的正则验性规则。

[HttpGet,Require("un",true,RegexConst.Mobile)]public void GetToken(string un, string pwd) { }

使用五:指定验证的提示文字。

[HttpGet,Require("un",true,RegexConst.Mobile,"用户名")]public void GetToken(string un, string pwd) { }

PS说明:没指定提示文字前,默认的提示是:

{0} is required.{0} is invalid.指定提示文字后,如果是中文,则提示变为中文:{0}不能为空。{0}格式错误。

使用六:指定自定义提示文字。

[HttpGet,Require("un",true,RegexConst.Mobile,"手机号是不能为空的","国内的手机号是11位数字的。")]public void GetToken(string un, string pwd) { }

三、增强功能的:CMS 标签语法

1、${xxx} 允许xxx指定从系统的请求参数中获取:

A:从Get的请求参数中获取;B:从Request[XXX]的请求参数中获取;C:从Request.Header的请求参数中获取。

示例:${host}是从系统变量中获取的。

Web API 文档 - Taurus.MVC

Host:允许指定参数无值时的默认值。

示例:/detail?d=

${d:这家伙很懒,没有写说明。}

四、默认实现的用户权限及Token机制

如果要开启此功能,你需要设置以下的配置:

指定好表名,及其它字段名的映射之后,该功能就自动开启了。

如果其它字段名和系统默认的名称一样,则可以不用指定映射。

对于WebAPI,启用后,可以通过以下路径获取Token

/auto/gettoken参数:?uid=xxx&pwd=xxx

对于方法的验证,指定token属性即可

[Token]public void GetXX() { }

另外提供了AuthHelper类,集成(MVC)下的注册、登陆、退出、获取用户信息等基础功能。

public static bool Login(string userName, string password, out string errMsg)public static bool Reg(string userName, string password, out string msg)public static void Logout()public static bool ChangePassword(string password)基础属性:public static bool TokenIsValidpublic static string UserIDpublic static string UserNamepublic static string FullNamepublic static string Token

五、WebAPI文档生成功能

其实这个才是重点,上面的功能,都是在弄这个的时候,顺带完成的。

只需要配置:

然后访问:/doc 路径,就可以看到WebAPI文档了。

示例地址:​​是轻量级的 mvc 框架,真正意义上的前后端分离,没有后端语法入侵。

2、学习成本比 ASP.NET MVC 低很多,性能高,易掌控,支持大并发。

3、同一套代码,一套机制,可以走在Win和Linux中,不用搞个.NET Core还部署在window这么尴尬。

4、回归Http本质的框架,你才能以不变应万变,不用陷入不断变化的框架的无限深坑里。

开源地址:​​https://github.com/cyq1162/Taurus.MVC​​


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:讲述Sagit.Framework解决:双向引用导致的IOS内存泄漏(下)- block中任性用self
下一篇:Spring占位符Placeholder的实现原理解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~