我对谷歌课堂批量请求没有什么疑问
我在documentation page“教室API当前遇到批处理请求问题。请改用多线程处理重载请求。”。但是下面的通知让我看到了一篇博客文章,上面说如果我使用正确的客户端库版本,只发送同质请求,仍然可以。那么,关于教室API批处理请求有问题的通知是否仍然适用于适当的客户端库(google API python client==1.7.11)
这篇文章不是关于批处理请求的,而是引出下面的第三个问题。当我们列出课程/教师/学生时,有一个页面大小参数。如果低于30,则返回正确的数字,但如果高于30,则仍返回30,我必须发送第二个请求以获取其余的数字。这种行为是否有记录
对于批处理请求,当请求有更多的结果时(如第2季度),是否有适当的方法来收集其余的结果。到目前为止,我得到的是这样的东西
def callback_s(id, res, exc):
if exc:
print('exception',str(exc))
t = res.get('students',[])
np = res.get('nextPageToken')
if np:
#how to get rest of the results
def get_students(courses):
service = discovery.build('classroom', 'v1', credentials=creds)
br = service.new_batch_http_request(callback=callback_s)
for c in courses:
sr = service.courses().students().list(courseId=c['id'])
br.add(sr, request_id=c['id'])
br.execute()
任何指点都将不胜感激
课堂API批量请求问题:
页面顶部的警告通常指批处理请求。这当然包括您使用的任何库,只要它们使用相同的API(当然,官方Python库也是如此)
您提到的博客文章是关于停止对全局批处理端点的支持,因此从现在起批处理请求必须是特定于API的。这与当前有关课堂API批处理请求的问题完全无关。它也早于警告,并且没有考虑这些问题
页面大小最大值:
pageSize
的文档没有指定最大值。对于teachers.list和students.list提到默认值(30)。如果设置的值高于30,但仍然只返回30,那么很可能这也是最大值不过,这似乎没有记录在案:
注意,这似乎不是courses.list的限制(没有提到默认的
pageSize
,对它的调用检索超过30次)多页和批处理请求:
不能使用批处理请求同时从
list
请求多个页面,因为需要上一页的nextPageToken
请求下一页(使用pageToken
)。也就是说,你必须一个接一个地提出要求相关问题 更多 >
编程相关推荐