应用程序编程接口¶
ZJUI-Learn 包含供教师使用的有限 API,允许以编程方式访问评估、评估实例和提交。
API认证¶
ZJUI-Learn 使用 API 的个人访问令牌。要生成个人访问令牌,请在导航栏中单击您的姓名,然后单击“设置”。在标题为“个人访问令牌”的部分下,您可以为自己生成令牌。这些令牌为您提供普通用户帐户拥有的所有权限。
通过 Private-Token 标头提供您的令牌:
curl -H "Private-Token: TOKEN" https://us.prairielearn.com/pl/api/v1/<REST_OF_PATH>
端点 HTTP 方法¶
API端点需要GET请求或POST请求。 GET 请求从 ZJUI-Learn 检索信息,例如成绩册信息。 POST 请求要求 ZJUI-Learn 执行操作,例如同步课程 GitHub 存储库。对于 GET 请求,您可以遵循上例中的格式。
以下是使用 curl 进行 POST 请求的示例:
curl -H "Private-Token: TOKEN" -X POST https://us.prairielearn.com/pl/api/v1/<REST_OF_PATH>
访问脚本示例¶
下载课程实例的所有 API 数据的示例脚本位于 api_download.py。你可以这样使用它:
python api_download.py --token 9a6932a1-e356-4ddc-ad82-4cf30ad896ac --course-instance-id 29832 --output-dir tam212fa18
token 是您上述的个人访问令牌。可以通过导航到 ZJUI-Learn Web 界面中的课程实例并从 URL 中提取 ID 来获取 course-instance-id。
端点¶
所有 API 端点均位于 /pl/api/v1/。如果您在生产 ZJUI-Learn 上运行,则意味着 API 位于 https://us.prairielearn.com/pl/api/v1。如果您在端口 3000 本地运行它,则可以通过 http://localhost:3000/pl/api/v1/ 访问该 API。
在下面的端点列表中,以冒号开头的路径组件(如 :course_instance_id)应替换为整数 ID。
课程实例¶
获取单个课程实例¶
GET /pl/api/v1/course_instances/:course_instance_id
获取课程实例的成绩册¶
GET /pl/api/v1/course_instances/:course_instance_id/gradebook
获取课程实例的访问规则¶
GET /pl/api/v1/course_instances/:course_instance_id/course_instance_access_rules
列出课程实例的评估¶
GET /pl/api/v1/course_instances/:course_instance_id/assessments
评估¶
获得单一评估¶
GET /pl/api/v1/course_instances/:course_instance_id/assessments/:assessment_id
列出评估的访问规则¶
GET /pl/api/v1/course_instances/:course_instance_id/assessments/:assessment_id/assessment_access_rules
列出评估实例进行评估¶
GET /pl/api/v1/course_instances/:course_instance_id/assessments/:assessment_id/assessment_instances
评估实例¶
获取单个评估实例¶
GET /pl/api/v1/course_instances/:course_instance_id/assessment_instances/:assessment_instance_id
列出评估实例的实例问题¶
GET /pl/api/v1/course_instances/:course_instance_id/assessment_instances/:assessment_instance_id/instance_questions
列出评估实例的提交内容¶
GET /pl/api/v1/course_instances/:course_instance_id/assessment_instances/:assessment_instance_id/submissions
获取评估实例的事件日志¶
GET /pl/api/v1/course_instances/:course_instance_id/assessment_instances/:assessment_instance_id/log
意见书¶
获取单个提交¶
GET /pl/api/v1/course_instances/:course_instance_id/submissions/:submission_id
课程同步¶
开始课程同步¶
POST /pl/api/v1/course/:course_id/sync
返回 job_sequence_id,可用于检查同步作业的状态。
检查课程同步状态¶
GET /pl/api/v1/course/:course_id/sync/:job_sequence_id
返回同步作业的状态和输出。