【发布时间】:2017-10-21 12:14:56
【问题描述】:
我正在向 Github 发出一个简单的 API 请求以获取所有存储库。问题是 Github 有一个限制,每个请求最多可以发送 100 个。有些用户拥有超过 100 个仓库,我不知道如何访问它或如何进行分页。
我正在像这样使用 Axios 发出 GET 请求:
https://api.github.com/users/<AccountName>/repos?per_page=100
我也可以这样放页码
https://api.github.com/users/<AccountName>/repos?page=3&per_page=100
但是如何在不发出 10 个 API 请求的情况下在应用程序中进行这项工作?我什至不知道我应该提出多少请求,因为我不知道返回的数字是多少,有人有 100 或 1000 个回购吗?例如,我希望将所有内容返回并保存在数组中。
编辑: 示例:我正在传递 accountName
var config = {
headers: {'Authorization': `token ${ACCESS_TOKEN}`}
}
const REQUEST: string = 'https://api.github.com/users/'
const apiCall = {
getData: async function (accountName) {
const encodedAccountName = encodeURIComponent(accountName)
const requestUrl = `${REQUEST}${encodedAccountName}`
const user = await axios.get(requestUrl, config)
// This return user and inside of user there is a link for fetching repos
const repo = await axios.get(`${user.data.repos_url}?per_page=100`, config)
...
【问题讨论】:
-
你有任何代码并且你尝试过对请求进行睡眠吗?
-
嗨,迈克·通克。我用代码更新了问题。