Spring Web MVC Restful API 优化之路 (1) - 参数构建优化
来源:互联网 发布:蜘蛛池监控软件 编辑:程序博客网 时间:2024/05/28 15:05
个人原创,如需转载请著名出处,谢谢。
本系列针对的是初、中级Spring Web MVC使用者。 本系列所述内容绝大部分都为干货分享。 有些插件为个人原创。
如果你的服务端的代码还是类似这样的①:
@RequestMapping(value = "", method = RequestMethod.GET) public void myApi(HttpServletRequest request, HttpServletResponse response) { String pageIdx = request.getParameter("pageIdx"); String pageMax = request.getParameter("pageMax"); // ... if (!Validator.validatePageIdx(pageIdx)) { // return some syntax error message. return; } if (!Validator.validatePageMax(pageMax)) { // return some syntax error message. return; } // ... // do real logical stuffs // ... }
那么我建议你不妨认真的看下本文所推荐的参数构建优化方式。如果你使用的是Spring / Hibernate的Validator方式②(即把输入参数转化成一个实体类,验证过程通过在实体类中的成员变量中添加验证注解),那么我也建议你不妨试下本文所倡导的方式:
@RequestMapping(value = "",method = RequestMethod.POST) public void api(@Required("PAGE_IDX") Integer pageIdx, @Required("PAGE_MAX") Integer pageMax) { // do real logical stuffs directly here now }
Kotsu插件③地址:https://github.com/ronankim/kotsu
③相比较于①方式:
1. 在代码量上首先就有很大的缩减,简化了很多重复的代码。
2. 在应对更复杂的输入环境时更灵活简便(比如POST方式时Kotsu会自动识别"application/json"亦或"application/xml"亦或"form"类型输入或URL Param形式的输入)。
3. 输入为多种情况时应对表达更加灵活(比如甄别{}、{"userName": null}、{"userName": "abcd"}等各种情形)。
③相比较于②方式:
1. 不需要为每个输入都建立一个模型。
2. 相同的参数验证具体方法和范围等你不需要记住,只需记住策略标记字符串即可,同时所需参数直接写在函数参数中,一目了然。
3. 同样,针对不同的输入情况表达更加灵活(比如甄别{}、{"userName": null}、{"userName": "abcd"}等各种情形)。
在遇到一些临时的非复用型的输入参数时,我们亦可以使用策略注解直接表达验证和类型转化方式。(如@VInteger,@VString等)。
Kotsu主要分为三个子模块:参数提取模块(Extractor)、参数验证模块(Validator)和参数组装模块(Assembler),每个模块都可以自定义添加自己所需的方式,无需修改源码可以直接在自己的项目中实现并引入。甚至策略注释也可以完全自己扩展实现。
- Spring Web MVC Restful API 优化之路 (1) - 参数构建优化
- 构建Spring Restful API请求参数解析
- 构建Spring Restful API请求参数解析
- 构建Spring Restful API请求参数解析
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- 【实践笔记】Spring MVC中Restful API使用 Swagger2 构建
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- Spring MVC中使用 Swagger2 构建Restful API
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- 使用 Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- Spring 3 MVC HttpMessageConverter 功能构建 RESTful web 服务
- Restful API设计(Java web Spring MVC 版)
- dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3(十)之Spring MVC中使用 Swagger2 构建Restful API
- PHP每日学习记录——PHP、APACHE、MYSQL的安装
- 对LABVIEW串口编程的理解!
- 码农小汪-struts2学习5-表单的验证的两种方法
- php中echo(),print(),print_r()的区别
- 百度面试总结
- Spring Web MVC Restful API 优化之路 (1) - 参数构建优化
- PAT (Advanced Level) Practise 1097 Deduplication on a Linked List (25)
- mybatis第二天
- 面试准备android(一)
- linux 常用命令
- Ubuntu14.04 +caffe+cuda 7.0
- jquery之attr()和removeAttr() prop的使用场所
- 求至少多少阶楼梯
- 《荒野猎人》在线观看[720p/1080p]百度云网盘下载