Dữ liệu danh sách
Các điểm truy cập Rostering và cách nghiệp vụ thực tập ánh xạ sang OneRoster.
Địa chỉ gốc: /ims/oneroster/rostering/v1p2. Cần quyền "Danh sách" (roster.readonly hoặc roster-core.readonly).
Điểm truy cập
Mọi danh sách đều có dạng lấy một bản ghi: /{tên}/{sourcedId}, trả về đối tượng số ít (ví dụ user).
| Đường dẫn | Nội dung |
|---|---|
GET /orgs, /schools | Trường |
GET /academicSessions, /terms, /schools/{id}/terms | Các đợt thực tập |
GET /courses, /schools/{id}/courses | Học phần "Thực tập doanh nghiệp" |
GET /classes, /terms/{id}/classes, /schools/{id}/classes, /courses/{id}/classes | Mỗi đợt một lớp |
GET /users/{id}/classes, /students/{id}/classes | Các đợt (lớp) một sinh viên có tên |
GET /users, /students, /schools/{id}/students | Sinh viên và cán bộ trường |
GET /classes/{id}/students | Sinh viên của một đợt |
GET /enrollments, /classes/{id}/enrollments, /schools/{id}/enrollments | Sinh viên có tên trong đợt |
Luôn rỗng
Nền tảng không có các đối tượng sau, nên các điểm truy cập chuẩn này luôn trả danh sách rỗng (mã 200), và lấy một bản ghi theo mã thì trả 404:
GET /teachers,/schools/{id}/teachers,/classes/{id}/teachers,/teachers/{id}/classes: không có giáo viên.GET /gradingPeriods,/terms/{id}/gradingPeriods: đợt thực tập không chia kỳ chấm điểm.GET /demographics: nền tảng không lưu dữ liệu nhân khẩu.
Ánh xạ nghiệp vụ
| Nghiệp vụ | OneRoster |
|---|---|
| Trường | orgs (type = school); identifier là mã trường trên nền tảng |
| Đợt thực tập | academicSessions (type = term); startDate là ngày mở, endDate là ngày đóng hoặc ngày dự kiến đóng; metadata."ttdn.open" cho biết đợt đang mở |
| Học phần thực tập | courses (một học phần, mã TTDN) và classes (mỗi đợt một lớp) |
| Sinh viên | users với roles[].role = student; mã sinh viên ở identifier và userIds[type = studentCode]; email là null khi sinh viên không có email thật |
| Tên đăng nhập | username: tên đăng nhập hoặc mã sinh viên với tài khoản dùng mật khẩu; email với tài khoản Google |
| Họ tên | familyName là họ, middleName là tên đệm, givenName là tên |
| Cán bộ trường | users với roles[].role = administrator |
| Tài khoản bị khoá | enabledUser = false |
| Tài khoản đã gỡ | status = tobedeleted, vẫn được liệt kê để việc đồng bộ biết mà cập nhật |
| Sinh viên có tên trong đợt | enrollments (role = student) vào lớp của đợt; beginDate là ngày sinh viên được đưa vào đợt, endDate là ngày đóng (hoặc dự kiến đóng) của đợt |
Doanh nghiệp không có vai trò tương ứng trong OneRoster nên không xuất hiện trong users; tên doanh nghiệp đi kèm kết quả thực tập.
Trường metadata của sinh viên có thêm:
ttdn.selfSignup: sinh viên tự tạo tài khoản bằng Google của trường.ttdn.studentCodeDeclared: mã sinh viên do sinh viên tự khai, nhà trường chưa xác nhận.
Ví dụ
{
"users": [
{
"sourcedId": "k3x9q2m7p1v8w4z6",
"status": "active",
"dateLastModified": "2026-11-10T08:15:00.000Z",
"enabledUser": true,
"username": "SV2026001",
"userIds": [{ "type": "studentCode", "identifier": "SV2026001" }],
"givenName": "An",
"familyName": "Nguyễn",
"middleName": "Văn",
"roles": [{ "roleType": "primary", "role": "student", "org": { "href": "/ims/oneroster/rostering/v1p2/orgs/…", "sourcedId": "…", "type": "org" } }],
"identifier": "SV2026001",
"email": "[email protected]",
"metadata": { "ttdn.selfSignup": false, "ttdn.studentCodeDeclared": false }
}
]
}