我目前正在使用Canvas LMS REST API进行一些工作,并且在尝试检索系统中定义的所有注册术语列表时遇到了问题。在在线系统中查看术语时,我可以看到所有已创建的术语,从第一个到最远定义的学期。但是,当我尝试使用
获取术语列表时GET / api / v1 / accounts /:account_id / terms
我只收到10个条款的清单,其余的则没有。有谁知道这可能导致什么?
此外,Term和EnrollmentTerm对象之间是否存在差异?我只看到EnrollmentTerm对象的API调用,而Term似乎是EnrollmentTerm中包含的数据的子集,只能在课程中传递。有人可以解释这里是否存在重要差异,以及我可能缺少什么?
最后,是否有人可以向我指出有关API调用返回的错误代码的一些信息?例如,当我使用
时POST / api / v1 / accounts /:account_id / terms
有一些相关参数,我得到400个错误的请求响应。如果参数命名错误,我会得到500响应。关于这个问题的任何指导都会非常有帮助。
让我知道我能做些什么来帮助澄清事情。谢谢你的帮助!
答案 0 :(得分:2)
我与Canvas开发人员进行了联系,发现这是因为他们对API响应进行了分页。它们的默认上限似乎是每个响应10个,但是通过在查询结尾添加?per_page = 100可以将其扩展到100,如下所示:
POST /api/v1/accounts/:account_id/terms?per_page=100
可以使用响应的链接标头中返回的URL检索其他页面。有关详情,请访问here。
示例链接头将是:
<https://<canvas>/api/v1/accounts/:account_id/terms?page=1&per_page=10>; rel="current",
<https://<canvas>/api/v1/accounts/:account_id/terms?page=2&per_page=10>; rel="next",
<https://<canvas>/api/v1/accounts/:account_id/terms?page=1&per_page=10>; rel="first",
<https://<canvas>/api/v1/accounts/:account_id/terms?page=10&per_page=10>; rel="last"
链接标题中的网址仅在相关时才包含在内,因此第一页不会返回&#34; prev&#34;链接和最后一页不会返回&#34; next&#34;例如,链接。