RESTful API限流
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-Limit,X-RateLimit-Remaining and X-RateLimit-Reset),只有一个例外。
不要使用Github的标准X-RateLimit-Reset标头。您可以保留相同的标头名称,但不要在此标头的值中显示时间戳,而应显示限流重置之前剩余的秒数。
为什么 ?因为HTTP规范指出日期格式应使用RFC 1123(即:星期五,2018年3月9日08:50:15 GMT)。因此,如果要在X-RateLimit-Reset标头中显示日期,则应使用此格式而不是时间戳,但是使用剩余秒数更为实用。

浙公网安备 33010602011771号