最近学习《阿里巴巴java开发手册》

第七章控制语句中,第6点提到了入参保护,原文如下:

6. 【推荐】接口入参保护,这种场景最常见的是用于做批量操作的接口。

 

工作中很少提到“入参保护”这个词,更多的是“参数校验”的说法;谈下个人对接口入参保护的理解:

 

1、接口入参保护,“保护”的是服务端应用,即接口提供方,最常见的做法就是入参的范围或者边界;

  比如,接口定义时明确校验入参的请求日期是N天内的记录,或者最大数量限制是1W条;

  开发手册中,尤其提到的场景就是批量操作批量操作的批量数应该有上限,而不是无限的。假如客户端请求一次批量操作10W笔转账订单,服务器应该果断拒绝,很不是很SB的忠实执行,会对服务端造成严重应该的批量请求,服务器端应做好保护性编程,必要时应直接失败,并在Result中返回明确的errorCode和errorMsg;

2、入参保护,一般都是通过卫语句实现:if(请求记录>10000条) return;直接返回。