当前位置:网站首页>RESTful API限流

RESTful API限流

2021-02-23 18:05:58 goalidea

RESTful API限流

译自Rate limiting your RESTful API

限流:使用X-RateLimit-*HTTP头部和429状态码

当您的API广泛被应用程序和用户使用时,限流变得很有必要。

达到限流后,您的API应该返回以下HTTP状态代码:

429 Too Many Requests

但是不幸的是,HTTP标头没有标准名称,您可以使用该标准标头将限流告知用户:

Twitter使用以下标头:

  • X-Rate-Limit-Limit - 该endpoint上限流的上限
  • X-Rate-Limit-Remaining - 15分钟中剩余的请求次数
  • X-Rate-Limit-Reset - 以UTC秒为单位,限流重置之前的剩余时间

Github使用以下标头:

  • X-RateLimit-Limit - 每小时允许您发出的最大请求数。
  • X-RateLimit-Remaining - 当前限流中剩余的请求次数。
  • X-RateLimit-Reset - 以UTC秒为单位,当前限流的重置时间。

但是,使用Github的标准似乎比使用Twitter的标准的RESTful API框架更多,这就是为什么我建议您使用Github的HTTP标头进行限流(即X-RateLimit-LimitX-RateLimit-Remaining and X-RateLimit-Reset),只有一个例外。

不要使用Github的标准X-RateLimit-Reset标头。您可以保留相同的标头名称,但不要在此标头的值中显示时间戳,而应显示限流重置之前剩余的秒数。

为什么 ?因为HTTP规范指出日期格式应使用RFC 1123(即:星期五,2018年3月9日08:50:15 GMT)。因此,如果要在X-RateLimit-Reset标头中显示日期,则应使用此格式而不是时间戳,但是使用剩余秒数更为实用。

版权声明
本文为[goalidea]所创,转载请带上原文链接,感谢
https://my.oschina.net/goalidea/blog/4960898

随机推荐