REST 사양에 대한 이해
Grades Journey v2는 REST API를 활용해 성적표 데이터를 프로비저닝할 수 있습니다. 이 API들은 핵심 Learn API와 다르지만, Grades Journey v2 API 인증은 핵심 Learn REST API와 동일한 OAuth2 인증 절차를 준수합니다. 이를 위해서는 Anthology Developer Portal 에서 REST API 응용 프로그램을 설정해야 합니다.
등급 체계 생성
웹 서비스 엔드포인트
https://{{hostname}}/learn/api/v2/cc/gradejourney/gradeSchemasAPI
JSON 본문 예시
[
{
"title": "Pass-Fail-Custom-Schema",
"symbols": "P=80:F=0",
"optionalData": "sisSchemaID=PF"
}
]등급 체계 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
제목 | 성적 스키마의 제목 | 예 | 스트링(333자) |
기호 | 리스트 내에서 선택적 하한을 가진 기호들. | 예 | 스트링(2000자) |
optionalData | 각 쌍은 콜론으로 구분되고 키와 값은 등호로 구분되는 키/값 쌍. 예를 들어: key1=value1, key2=value2 | 아니요 | 스트링(2000자) |
예시 응답
[
{
"courseId": "",
"name": "Pass-Fail-Custom-Schema",
"status": "OK",
"message": "Grade schema successfully created"
}
]성적 열과 채점 가능한 항목을 생성하세요.
웹 서비스 엔드포인트
https://{{hostname}}/learn/api/v2/cc/gradejourney/gradableItemsAPI
JSON 본문 예시
[
{
"courseId": "course1",
"name": "Final Grade",
"itemType": "MANUAL_COLUMN",
"instructions": ""
"anonymous": false,
"group": false,
"contentAreaName": "Assignments",
"available": true,
"attempts": 1,
"tracked": false,
"startDate":
"endDate":
"dueDate": "",
"points": 100,
"gradeSchema": "Pass-Fail-Custom-Schema",
"sequenceNum": 1,
"extract": true,
"mapping": "",
"optionalData": "SIS_ID=FG123456",
}
]채점 가능한 항목과 등급 열에 대한 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
코스ID(코스ID) | Batch_uid는 채점 대상 항목이나 성적이 적용되는 과목을 식별하는 것입니다. | 예 | 스트링(256자) |
이름 | 항목에 부여할 수 있는 등급의 제목입니다. | 예 | 스트링(333자) |
아이템 유형 | 만들 수 있는 아이템의 등급은 무엇일까요? 가능한 값: *과제, *시험, 설문조사, 토론 게시판, 위키, 블로그, 저널, 자가 및 동료 평가, *수동 열, *가중 열, 총점 열 *울트라 및 오리지널 코스입니다. 해당되는 것은 오리지널 코스뿐입니다. | 예 | 스트링(333자) |
지침 | 등급을 매길 수 있는 항목에 대한 지침입니다. | 아니요 | 스트링(2000자) |
익명 | 과제나 시험은 사실이라면 익명으로 채점이 활성화되어 생성됩니다. 울트라 코스의 경우 익명 채점을 위해서는 해당 항목에 마감일을 설정해야 합니다. | 아니요 | 부울(Boolean) (기본값: false) |
그룹 | 과제 유형별로 그룹 제출 형식이 생성됩니다. | 아니요 | 부울(Boolean) (기본값: false) |
contentAreaName | 항목이 등급을 매길 수 있는 위치입니다. Ultra 코스에서 하위 폴더를 설정하고 콘텐츠를 그 안에 넣는 데 사용할 수 있습니다. 값 형식은 "parent@>@child"로, 여기서 "parent"는 최상위 폴더 이름이며 "child"는 하위 폴더 이름이다. 기존 서브폴더가 이미 있다면, 할당은 해당 서브폴더에 추가됩니다. 하위 폴더가 존재하지 않는 경우, 상위 폴더 내에 생성됩니다. | 아니요 | 스트링(255자) |
이용 가능 | 학생들이 해당 항목을 볼 수 있는지 판단합니다. | 아니요 | 부울(Boolean) (기본값: false) |
색 | 원본 강의의 채점형 항목 색상 링크입니다. 색상 이름 또는 16진수 값. 원본 과정만 제공됩니다. | 아니요 | 스트링(10개) |
시도 | 시험 또는 과제에 허용된 시도 횟수입니다. | 아니요 | 지능(무제한인 경우 기본값은 -1) |
추적 | 항목의 등급이 가능한지 여부에 대한 통계 추적이 활성화되어 있는지를 결정합니다. 성적란에는 적용되지 않습니다. 원본 과정만 제공됩니다. | 아니요 | 부울(Boolean) (기본값: false) |
시작일 | 날짜를 표시하십시오. | 아니요 | 날짜 |
종료일 | 날짜를 표시하세요. | 아니요 | 날짜 |
은 2023년 05월 30일입니다. | 항목의 등급을 매길 수 있는 마감일입니다. | 아니요 | 날짜 |
포인트 | 점수 가능성을 유지합니다. | 아니요 | 플로트(기본값 100.0) |
gradeschema | 등급 스키마 이름은 Learn에 있는 그대로 유지하세요. 이 스키마는 등급 내보내기 또는 Blackboard Learn에서 사용할 수 있는 웹 서비스를 사용하여 생성되었을 수 있습니다. | 아니요 | 스트링(333자) |
시퀀스넘 | 콘텐츠 영역 순서를 나타내는 주문번호. 원본 과정만 제공됩니다. | 아니요 | 이번 주제는 '지능'에 관한 것입니다. |
추출물 | 참/거짓 – 참일 경우 이 열은 추출 도구를 통해 추출됩니다. 발신 설정 페이지에서 등급 여정에 프로비저닝이 활성화된 경우에만 적용됩니다. | 아니요 | 스트링(333자) |
매핑 | 매핑을 지정하십시오. 기본값은 '매핑 없음'이며, Learn에서 직접 수동으로 매핑을 수행해야 합니다. 이것은 점수를 받을 수 있는 항목 이름과 백분율의 쌍으로, 쉼표로 구분되어 있으며 퍼센트 합계가 100입니다. 과제1은 30점, 시험1은 30점, 시험2는 40점입니다. 열의 총합을 구할 때는 총합에 포함시킬 열만 지정하십시오. 과제1, 시험1, 과제2, 최종 성적을 예로 들 수 있다. | 아니요 | 스트링(333자) |
optionalData | 각 쌍은 콜론으로 구분되고 키와 값은 등호로 구분되는 키/값 쌍. 예를 들어: key1=value1, key2=value2 | 아니요 | 스트링(2000자) |
예시 응답
[
{
"status": "OK",
"message": "Gradecolumn successfully created",
"courseId": "course1",
"name": "Final Grade"
}
]성적 열을 삭제합니다.
웹 서비스 엔드포인트
https://{{hostname}}//learn/api/v2/cc/gradejourney/gradeColumnDeleteAPI
JSON 본문 예시
[
{
"courseId": "course1",
"name": "Final Grade"
}
]성적 열의 삭제 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
코스ID(코스ID) | 강좌의 batch_uid. | 예 | 스트링(333자) |
이름 | 열 이름을 삭제하세요. | 예 | 스트링(333자) |
예시 응답
[
{
"status": "OK",
"message": "Grade column successfully deleted",
"courseId": "TG-TEST-ORIG",
"name": "Delete Column"
}
]외부 경사를 설정하십시오.
(오리지널 코스에만 사용 가능)
웹 서비스 엔드포인트
https://{{hostname}}/learn/api/v2/cc/gradejourney/externalGradeColumnAPI
JSON 본문 예시
[
{
"courseId": "course1",
"name": "Final Grade"
}
]외부 경사 기둥 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
코스ID(코스ID) | 강좌의 batch_uid. | 예 | 스트링(333자) |
이름 | 기둥의 이름이 외부 등급으로 설정됩니다. | 예 | 스트링(333자) |
예시 응답
[
{
"status": "OK",
"message": "External grade column successfully updated",
"courseId": "course1",
"name": "Final Grade"
}
]등록 메타데이터 생성 중
웹 서비스 엔드포인트
https://{{hostname}}/learn/api/v2/cc/gradejourney/userMetadataAPI
JSON 본문 예시
[
{
"courseId": "course1",
"userId": "student1",
"optionalData": "EnrollType=LetterGrade"
},
{
"courseId": "course1",
"userId": "student2",
"optionalData": "EnrollType=Audit"
}
]등록 메타데이터 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
코스ID(코스ID) | 강좌의 batch_uid. | 예 | 스트링(333자) |
사용자 ID | 사용자의 batch_uid. | 예 | 스트링(333자) |
optionalData | 각 쌍은 콜론으로 구분되고 키와 값은 등호로 구분되는 키/값 쌍. 예를 들어: key1=value1, key2=value2 | 아니요 | 스트링(2000자) |
예시 응답
[
{
"status": "OK",
"message": "User metadata successfully created",
"courseId": "course01",
"name": "student01"
},
{
"status": "OK",
"message": "User metadata successfully created",
"courseId": "course02",
"name": "student02"
}
]등급값 업데이트
웹 서비스 엔드포인트
https://{{hostname}}/learn/api/v2/cc/gradejourney/gradeValueAPI
JSON 본문 예시
[
{
"courseId": "course001",
"userId": "user1",
"name": "FINAL GRADE",
"value": "B"
}
] 성적 가치 업데이트 요소 정의
원소 이름 | 설명 | 필수 | 종류 및 최대 크기 |
|---|---|---|---|
코스ID(코스ID) | 강좌의 batch_uid. | 예 | 스트링(333자) |
사용자 ID | 사용자의 batch_uid. | 예 | 스트링(333자) |
이름 | 업데이트 가능한 열입니다. | 예 | 스트링(333자) |
값 | 등급 값을 업데이트합니다. | 예 | 스트링(333자) |
예시 응답
[
{
"status": "OK",
"message": "Grade value successfully added",
"courseId": "course1",
"name": "Final Grade"
}
]