美文网首页
接口调用次数限制

接口调用次数限制

作者: jiang5778066 | 来源:发表于2018-07-06 13:55 被阅读0次

项目中出现这样的一个需求:

    现在有一个发送验证码的接口,验证码是使用的腾讯云的发送验证码,费用取决于发送验证码的条数和验证码短信中的字数的多少。

    节省费用方案:

        1.首先发送短信信息的字数要简洁,这个和程序员没有多大的关系,运营人员和产品经理决定好了,程序员负责设置即可

        2.调用接口的时候可以加一层防护:修改密码和重置密码的时候手机号必须是火眼金睛平台的会员或者注册过的体验会员,别的手机号不会发送。这一点是预防用户随便填写手机号获取验证码的,可以节省一部分开销。注册的时候,不需要验证手机号是否是平台会员。

        3.调用接口频次添加限制。

                实现思路:前端发送的请求最好带一个请求头,请求头名称为requestId,请求头内容是该用户的唯一标识+该请求的唯一标识(字符串类型)。不过呢,在我这个项目里面没有添加这个请求头,我可以后台中拼出一个字符串标识该用户的该请求的唯一id,所以不必前端进行配合。

                接口中的逻辑:(主要用到了redis,在redis中存放的结构是:key为requestId,value是该接口被调用限制次数,可以设置一个有效期:该有效期表示在该段时间里面,最多被调用多少次)

                        1).自己拼出requestId或者从请求头中获取到requestId,根据该requestId去redis中查询,

                        2).如果查出的count为null,则调用redisService.set(requestId,count,outtime)方法存储该记录,存完之后正常请求

                        3).如果查出的count不为null,此时与1比较,如果大于1,count自减1,自减之后正常请求;否则拦截,回复前端50006,表示请稍后重试--->稍后就是等到设置的有效期结束以后redis自动删除记录。此时整个流程跳回2.

        注意:自减一,这个我通过查jedisAPI,查出来一个decr方法,然后修改自己的redis工具类。

相关文章

  • 接口调用次数限制

    项目中出现这样的一个需求: 现在有一个发送验证码的接口,验证码是使用的腾讯云的发送验证码,费用取决于发送验证码的...

  • 接口调用限制次数

    laravel中间件throttle 频率限制的应用还会回传三个响应头: X-RateLimit-Limit告诉我...

  • lumen接口访问频率throttle

    由于公司项目对外提供开放平台接口,所以为了防止第三方调用接口太频繁给服务器带来过大的压力,需要对接口调用次数限制,...

  • 马氏架构心得

    我们在生产中会遇到这样的场景: 1:接口限速:针对每个接口分不同维度的限制调用次数: 如:请求url -/orde...

  • 调用企微接口获取access_token,返回接口调用频次超限

    可能原因: access_token获取受频率限制: 如果在一个小时内,调用gettoken接口失败次数过多,1小...

  • 接口如何防刷

    问题 接口如何防刷 好多厂子都会问你这个问题,基本上大多数处理方式都是后端工程师对用户的接口调用次数做限制,其实可...

  • python限制函数调用次数

    使用注解实现。注解可以是函数,也可以是类的实例。只要是可调用的即可。

  • 2.8 调用次数的限制

    在record和verify阶段可以使用times,minTimes,maxTimes来限制。默认为minTime...

  • API 调用次数限制实现

    在开发接口服务器的过程中,为了防止客户端对于接口的滥用,保护服务器的资源, 通常来说我们会对于服务器上的各种接口进...

  • SpringBoot的AOP面向切面

    1.前言 遇到任务要求:针对接口封装,所有的接口都要进行封装,并记录接口的调用次数,接口调用的成功与失败error...

网友评论

      本文标题:接口调用次数限制

      本文链接:https://www.haomeiwen.com/subject/uerjmxtx.html