如何有效管理 GitHub API 的请求速率限制并通过认证令牌提高请求额度:完整指南与代码示例
在使用 GitHub API 进行开发时,了解和管理请求速率限制(Rate Limiting)是至关重要的。GitHub 为了保护其服务器资源,并确保服务的稳定性和公平性,对通过其 API 发出的请求施加了速率限制。
GitHub API 请求速率限制
GitHub 对 API 请求设置了以下两种类型的速率限制:
-
未经认证的请求:这类请求通常限制为每小时最多 60 次。这适用于未包含任何认证凭证的 API 调用。
-
经过认证的请求:当请求中包含用户的个人访问令牌(Personal Access Token, PAT)或其他认证方式时,速率限制会显著提高,达到每小时最多 5000 次请求。
如何使用认证 token 增加请求次数
使用个人访问令牌(PAT)不仅可以增加访问资源的权限(如访问私有仓库),还能显著提高请求的速率限制。以下是生成和使用 GitHub 个人访问令牌的步骤:
生成个人访问令牌
- 登录您的 GitHub 账户。
- 在任何 GitHub 页面的右上角,点击您的头像,然后选择 "Settings(设置)"。
- 在侧边栏中,点击 "Developer settings(开发者设置)"。
- 在左侧菜单中,选择 "Personal access tokens(个人访问令牌)",然后点击 "Generate new token(生成新令牌)"。
- 选择所需的权限,然后点击 "Generate token(生成令牌)"。
- 重要:在离开页面前请复制新令牌。您将无法再次查看此令牌。
使用认证 token 进行请求
您可以在代码中使用个人访问令牌来提升请求速率限制,以下是使用认证 token 进行请求的示例代码:
python
import requests
# 设置认证头部,包括您的个人访问令牌
headers = {
'Authorization': 'token YOUR_PERSONAL_ACCESS_TOKEN'
}
# 发起请求
url = 'https://api.github.com/repos/ultralytics/yolov5/releases/tags/v5.0'
response = requests.get(url, headers=headers)
# 检查响应状态并解析 JSON
if response.status_code == 200:
data = response.json() # 转换 JSON 字符串为 Python 字典
print(data)
else:
print('Failed to fetch data:', response.status_code, response.text)
总结
通过使用个人访问令牌,您不仅能够访问更多的 GitHub 资源,还可以享受更高的 API 请求速率限制,这对于需要频繁调用 GitHub API 的应用程序极为重要。务必安全地管理您的访问令牌,避免将其泄露到公共或不安全的环境中。此外,合理地利用请求限制和认证方式可以有效避免服务中断,确保您的应用程序的稳定运行。通过调用 .json()
方法,您能够确保将 API 响应的 JSON 格式正确转化为 Python 可操作的字典格式,从而便于访问和处理数据。