Bỏ qua, đến nội dung

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ẫnNội dung
GET /orgs, /schoolsTrường
GET /academicSessions, /terms, /schools/{id}/termsCác đợt thực tập
GET /courses, /schools/{id}/coursesHọc phần "Thực tập doanh nghiệp"
GET /classes, /terms/{id}/classes, /schools/{id}/classes, /courses/{id}/classesMỗi đợt một lớp
GET /users/{id}/classes, /students/{id}/classesCác đợt (lớp) một sinh viên có tên
GET /users, /students, /schools/{id}/studentsSinh viên và cán bộ trường
GET /classes/{id}/studentsSinh viên của một đợt
GET /enrollments, /classes/{id}/enrollments, /schools/{id}/enrollmentsSinh 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ườngorgs (type = school); identifier là mã trường trên nền tảng
Đợt thực tậpacademicSessions (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ậpcourses (một học phần, mã TTDN) và classes (mỗi đợt một lớp)
Sinh viênusers 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ậpusername: 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ênfamilyName là họ, middleName là tên đệm, givenName là tên
Cán bộ trườngusers 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 đợtenrollments (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 }
    }
  ]
}

Trong trang này