Open eClass 4 API
Η έκδοση 4.0 της πλατφόρμας υποστηρίζει τις παρακάτω κλήσεις API.
Για να χρησιμοποιήσετε το api θα πρέπει πρώτα να δημιουργήσετε ένα authentication token. Η δημιουργία του γίνεται μέσα από το διαχειριστικό περιβάλλον της πλατφόρμας. Οδηγίες μπορείτε να βρείτε στο Δημιουργία API token.
Σε όλα τα παρακάτω υποθέτουμε ότι το url του eclass είναι το eclass.localdomain, ενώ όπου αναφέρεται ο κωδικός μαθήματος, θεωρούμε ότι είναι το TEST100.
Σημειώστε ότι σε περίπτωση επιτυχίας επιστρέφεται το αντίστοιχο json object, ενώ επιστρέφεται σχετικό μήνυμα λάθους σε περίπτωση αποτυχίας.
Σε όλες τις κλήσεις που απαιτείται authentication, το token μπορεί να περαστεί με τρεις τρόπους:
- Ως παράμετρος POST
- Στα HTTP Headers με τη μορφή
Authorization: Bearer eclass_d9d10ac9a2cb75bafc3cf28baf5d0bb84b3d77e3d007b495d3fd0a6974ef48da
Παράδειγμα κλήσης
curl -H 'Authorization: Bearer (eclass_token) ' 'https://eclass.localdomain/api/v1/courses/
Υποστηρίζονται οι παρακάτω κλήσεις.
Κλήσεις με GET
- Λήψη των κατηγοριών μαθημάτων της πλατφόρμας ως JSON array:
GET https://eclass.localdomain/api/v1/categories/
{ "id": "1", "name": "Κατηγορία 1", "description": "Περιγραφή της κατηγορίας 1", "timemodified": "2023-03-07 14:11:36", "sortorder": "0" }
- Λήψη των μαθημάτων της πλατφόρμας ως JSON array:
GET https://eclass.localdomain/api/v1/courses/
{ "id": "CODE1", "name": "Test Course", "shortname": "Test Course", "categoryid": "1", "summary": "", "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. ", "timecreated": "2023-03-07 14:11:36", "timemodified": "2023-03-07 14:11:36" },
- Λήψη των ενοτήτων ενός μαθήματος ως JSON array:
GET https://eclass.localdomain/api/v1/sections/?course_id=TEST100
{ "id": "1", "name": "Επαγγελματικό περιβάλλον και δεοντολογία", "summary": "" },
- Λήψη των ομάδων χρηστών ενός μαθήματος ως JSON array:
GET https://eclass.localdomain/api/v1/groups/?course_id=TEST100
{ "id": "1", "name": "test" },
- Λήψη πληροφοριών μιας ομάδας:
GET https://eclass.localdomain/api/v1/groups/?group_id={N}
{ "id": "1", "name": "test" }
- Λήψη των SCORM ενός μαθήματος:
GET https://eclass.localdomain/api/v1/scorms/?course_id=TEST100
{ "id": 2, "name": "Επαγγελματικό περιβάλλον και δεοντολογία", "summary": "", "order": 1, "sco_id": "thematiko1_SCO" },
- Λήψη πληροφοριών ενός SCORM:
GET https://eclass.localdomain/api/v1/scorms/?scorm_id={N}
{ "id": 2, "name": "Επαγγελματικό περιβάλλον και δεοντολογία", "summary": "", "order": 1, "sco_id": "thematiko1_SCO" }
- Λήψη πληροφοριών όλων των SCORM μιας ενότητας
GET https://eclass.localdomain/api/v1/scorms/?section_id={N}
- Λήψη πληροφοριών προόδου για όλους τους χρήστες του μαθήματος
GET https://eclass.localdomain/api/v1/scormtracking/?course_id=TEST100
- Λήψη πληροφοριών προόδου για τα μέλη μιας ομάδας:
GET https://eclass.localdomain/api/v1/scormtracking/?group_id={N}
{ "userid": 100, "scormid": 1, "scoid": "inegsee_SCO", "starttime": "2023-03-10 15:08:50", "endtime": "2023-03-10 15:09:29", "duration": "00:00:37", "groupid": "1" }
- Λήψη πληροφοριών προόδου για συγκεκριμένο SCORM και χρήστη:
GET https://eclass.localdomain/api/v1/scormtracking/?scorm_id={N}&user_id={N}
{ "userid": "100", "scormid": 2, "scoid": "thematiko1_SCO", "starttime": "2023-03-13 16:27:17", "endtime": "2023-03-13 16:27:17", "duration": "00:00:00", "groupid": 1 }
- Επιστρέφει τα στοιχεία χρήστη:
GET https://eclass.localdomain/api/v1/users/?id={N}
{ "id": 100, "username": "user099", "firstname": "Student", "lastname": "99", "emailaddress": "adia+user099@uoa.gr", "adt": " " }
- Σύνδεσμος για πρόσβαση / login στην πλατφόρμα - ο σύνδεσμος ισχύει για 500 δευτερόλεπτα.
GET https://eclass.localdomain/api/v1/sso/?user_id={N}
Επιστρέφει:
{ "url": "https://eclass.localdomain/modules/auth/sso.php?user=user099&token=642702bd-368303ace346f436945b45bc88190e628aeb7fc5" }
Κλήσεις με POST
- Δημιουργία χρήστη. Παράμετροι: username, firstname, lastname, emailaddress, [adt].
POST https://eclass.localdomain/api/v1/users/
Σημειώστε ότι μπορούμε να την καλέσουμε πολλές φορές για τον ίδιο χρήστη. Εφόσον το username είναι το ίδιο, ενημερώνει τα υπόλοιπα στοιχεία και επιστρέφει το user_id.
Επιστρέφει:
{ "id": user_id }
- Δημιουργία ομάδας χρηστών. Παράμετροι course_id, groupname
POST https://eclass.localdomain/api/v1/groups/
Επιστρέφει:
{ "id": group_id }
- Εγγραφή χρήστη σε μάθημα. Παράμετροι: user_id, course_id, [role_id = {student|teacher|teacher_assistant}]
POST https://eclass.localdomain/api/v1/enroll_user/
Το role_id είναι προαιρετικό - αν δεν το περάσουμε, ο χρήστης γίνεται εκπαιδευόμενος. Μπορούμε να την καλέσουμε πολλές φορές για τον ίδιο χρήστη και μάθημα.
Επιστρέφει αν δεν υπάρχει σφάλμα:
{ "status": "ok" }
- Απεγγραφή χρήστη από μάθημα. Παράμετροι: user_id, course_id
POST https://eclass.localdomain/api/v1/unenroll_user/
Επιστρέφει αν δεν υπαρχει σφάλμα:
{ "status": "ok" }