Spring中的aware接口详情
269
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
使用四:指定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}是从系统变量中获取的。
示例:/detail?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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~