Prototype功能预览九:接口最小化原则-更安全的接口
来源:互联网 发布:coc弓箭女皇升级数据 编辑:程序博客网 时间:2024/05/16 12:34
框架整体介绍:http://blog.csdn.net/flyxxxxx/article/category/7055640
对此框架有兴趣或想参与开发的请加QQ群:255195191在Spring MVC或dubbo以及其它任意接口调用(跨服务器或第三方调用)过程中,我们经常会用一些POJO对象作为参数及返回结果,这会有以下问题:
1、作为参数的POJO对象,是否所有的属性都是接口所需要的?如果不是,调用都传入了一些不需要的属性值,接口是否对这个不需要的属性值做了检查?我相信几乎100%的项目都没有对此做检查。
2、作为参数,是否在JAVA端做了完整的参数检查?就我了解到的项目来说,基本都只在前端做了参数的检查工作,后端几乎没有检查。
3、作为输出结果的POJO对象,是否所有的属性值都是APP或前端调用时需要用到的?我相信不是,那么,多余的属性会造成手机流量的浪费以及对APP或前端的干扰。
在Prototype框架中,通过注解来定义输入输出,所有输入的参数都由框架自动检查,未定义输入的参数会完全忽略,未定义输出的属性不会输出:
@ServiceDefine(hint = "...", value = "second demo")//定义一个服务接口
@RequestMapping("/query")
public class QueryUser extends Business{
@Input(@Prop(desc = "关键字",maxLength=20))//输出
private String keyword;
@Output(desc="用户列表",{@Prop(desc="ID",name="id"),@Prop(desc="姓名",name="name")})
private List<User> list;
}
上面的代码相当于Spring MVC以下的代码:
@RequestMapping("/query")
@ResponseBody
public List<User> queryUser(String keyword){
...
}
两者之前的差别在于,Prototype框架不会把User对象中多余的那些属性输出,保证接口输入的安全性,完整的参数检查,没有多余的结果输出。
- Prototype功能预览九:接口最小化原则-更安全的接口
- 编写更灵活的系统——接口隔离原则
- Prototype功能预览十三:一个注解完成更加规范的API版本管理-极大减少dubbo框架频繁修改接口问题
- 更详细的天气预报接口
- <九>接口
- 类的接口设计原则
- 接口隔离原则的定义
- Prototype功能预览三:没有价值的MyBatis/iBatis
- Prototype功能预览十:面向未来技术的框架
- 接口安全
- APP接口的安全设计
- API接口的安全验证
- 在线预览word接口
- 更灵活的使用PrepareStatement接口
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- 设计基于HTML5的APP登录功能及安全调用接口的方式(原理篇)
- AChartEngine折线图代码测试
- [python][基础知识] 循环
- PAT(Basic Level)_1048_数字加密
- 机器学习第一周(二)--模型引入
- 修改linux rac oracle11g r2 7个IP(public vip scan private)
- Prototype功能预览九:接口最小化原则-更安全的接口
- 大数据处理问题
- 【MySQL】(3)用mysql-connector-java-5.1.34连接器 连接Java和MySQL
- muduo源码分析(1):时间类
- PAT(Basic Level)_1049_数列的片段和
- 复习EKF
- KotLin的认识(一)
- CCF201412-3 集合竞价 日常暴力带BUG修复
- Zcash钱包(ZEC钱包)官方客户端常见命令实测(一)