Canvas LMS API 中缺少注册条款
Missing enrollment terms in Canvas LMS API
我目前正在使用 Canvas LMS REST API 进行一些工作,并且在尝试检索系统中定义的所有注册条款列表时遇到了 运行 问题。在在线系统中查看术语时,我可以看到所有已创建的术语,从第一个到最远定义的学期。但是,当我尝试使用
获取术语列表时
获取/api/v1/accounts/:account_id/terms
我只收到 10 个术语的列表,其余的都没有。有谁知道是什么原因造成的?
此外,Term 和 EnrollmentTerm 对象之间有区别吗?我只看到 API 对 EnrollmentTerm 对象的调用,而 Term 似乎是 EnrollmentTerm 中包含的数据的子集,只能在课程中传递。有人可以解释一下这里是否存在重要差异,以及我可能遗漏了什么吗?
最后,谁能告诉我一些关于 API 调用返回的错误代码的信息?例如,当我使用
POST /api/v1/accounts/:account_id/terms
使用一些关联参数,我收到 400 错误请求响应。当参数命名不正确时,我会收到 500 响应。关于此事的任何指导都会非常有帮助。
如果我能做些什么来帮助澄清事情,请告诉我。感谢您的帮助!
我联系了 Canvas 开发人员,发现这是由他们对 API 响应进行分页的方式造成的。他们的默认上限似乎是每个响应 10 个,但是可以通过在查询末尾添加 ?per_page=100 将其扩展到 100 个,如下所示:
POST /api/v1/accounts/:account_id/terms?per_page=100
可以使用在响应的 Link header 中 returned 的 URL 检索其他页面。有关更多信息,请参见 here.
一个例子 Link header 是:
<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"
Link header 中的 URL 仅在相关时才包含在内,因此第一页不会 return "prev" link 和最后一页不会return一个"next"link,例如
我目前正在使用 Canvas LMS REST API 进行一些工作,并且在尝试检索系统中定义的所有注册条款列表时遇到了 运行 问题。在在线系统中查看术语时,我可以看到所有已创建的术语,从第一个到最远定义的学期。但是,当我尝试使用
获取术语列表时获取/api/v1/accounts/:account_id/terms
我只收到 10 个术语的列表,其余的都没有。有谁知道是什么原因造成的?
此外,Term 和 EnrollmentTerm 对象之间有区别吗?我只看到 API 对 EnrollmentTerm 对象的调用,而 Term 似乎是 EnrollmentTerm 中包含的数据的子集,只能在课程中传递。有人可以解释一下这里是否存在重要差异,以及我可能遗漏了什么吗?
最后,谁能告诉我一些关于 API 调用返回的错误代码的信息?例如,当我使用
POST /api/v1/accounts/:account_id/terms
使用一些关联参数,我收到 400 错误请求响应。当参数命名不正确时,我会收到 500 响应。关于此事的任何指导都会非常有帮助。
如果我能做些什么来帮助澄清事情,请告诉我。感谢您的帮助!
我联系了 Canvas 开发人员,发现这是由他们对 API 响应进行分页的方式造成的。他们的默认上限似乎是每个响应 10 个,但是可以通过在查询末尾添加 ?per_page=100 将其扩展到 100 个,如下所示:
POST /api/v1/accounts/:account_id/terms?per_page=100
可以使用在响应的 Link header 中 returned 的 URL 检索其他页面。有关更多信息,请参见 here.
一个例子 Link header 是:
<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"
Link header 中的 URL 仅在相关时才包含在内,因此第一页不会 return "prev" link 和最后一页不会return一个"next"link,例如