我正在尝试通过使用JSON
连续创建HTTP requests
来构建Axios
文件:
JSON
文件代码:
let getProjects = function() {
try {
return axios.get('https://app.asana.com/api/1.0/projects/')
} catch (error) {
console.error(error)
}
}
let getTasks = function(project) {
try {
return axios.get('https://app.asana.com/api/1.0/projects/'+project+'/tasks')
} catch (error) {
console.error(error)
}
}
let getAttachments = function(task) {
try {
return axios.get('https://app.asana.com/api/1.0/tasks/'+task+'/attachments')
} catch (error) {
console.error(error)
}
}
async function getAsanaData() {
let projects = await getProjects()
return Promise.all(projects.data.data.map(async (project) => {
project.attachments = []
let tasks = await getTasks(project.gid)
return Promise.all(tasks.data.data.map(async (task) => {
let attachments = await getAttachments(task.gid)
project.attachments = !!attachments ? project.attachments.concat(attachments.data.data) : project.attachments
return project
}))
}))
}
getAsanaData()
.then((projects) => {
var asanaData = safeJsonStringify(projects);
fs.writeFile("thing.json", asanaData);
})
.catch(err=>console.log(err))
但是我遇到了这个错误:
status: 429,
statusText: 'Too Many Requests
对于解决该问题,我还没有发现任何帮助。我该怎么办?
答案 0 :(得分:0)
HTTP响应状态代码429指示发送的请求太多,服务器无法处理。它也已在https://asana.com/developers/documentation/getting-started/errors中记录。根据{{3}}中的记录,允许的最大值是每分钟150。
是的,正如@Randy Casburn所说,您将必须限制您的请求。
答案 1 :(得分:0)
由于发送太多请求并达到最高速率,您被Asana限制了。
发生这种情况时,您需要检查Retry-After
响应标头并等待指定的时间,然后再发送另一个请求。
https://asana.com/developers/documentation/getting-started/rate-limits
中了解更多信息