缘起
在项目开发中,前后端分离,后端采用express提供api接口。有一个非常常见的需求是接口参数验证,比如
- 获取用户地址列表,需要判断用户是否以query形式传入token、limit、skip
原始做法是在业务函数中判断,但是这样太麻烦了
需求
我们需要这样的一种框架,他需要满足下面几点
1.基于配置的参数验证
这个框架需要做到不需要在业务逻辑里判断,只需要提供一个配置json就可以自动进行验证。例如上面的例子中,只需要提供
2.灵活,可以满足各类参数验证
例如,我们需要判断这个limit是一个整数,并且范围是10-50,skip也是一个整数,范围是0-100 再例如,我们需要要求token、skip、limit这三个参数都必须放在query里面 再例如,在一个Post接口里面,我们需要要求参数在body里面,并且还是自动解析的
快速使用
基于上面的需求,提高开发效率,开发了适用于express的joi-router。再说他的特性之前,先看他是怎么用的 上面这里例子里,验证的是query参数必须有一个userId,并且userId必须是字母和数字的组合,长度在3个字节到30个字节之间。 再看个复杂点的例子 是不是用起来很简单,尤其是参数特别多的时候,并且组合在一起的时候。
Feature
这个项目有如下几个特点
- Api参数验证
- Api返回结果格式验证
- 使用例子
- 完善的测试代码(代码测试覆盖率90%以上)
- 持续集成
后续改进
未来还会提供一种功能,就是根据你的代码,生成接口文档。
项目地址
欢迎大家Follow和Star,更欢迎你参与进来提出意见,提出PR Joi-router https://github.com/sunkuo/joi-router 你可以在github上看到安装使用说明