==== Open eClass 4 API ==== Η έκδοση 4.0 της πλατφόρμας υποστηρίζει τις παρακάτω κλήσεις API. Για να χρησιμοποιήσετε το api θα πρέπει πρώτα να δημιουργήσετε ένα authentication token. Η δημιουργία του γίνεται μέσα από το διαχειριστικό περιβάλλον της πλατφόρμας. Οδηγίες μπορείτε να βρείτε στο [[el:admin:system_settings:external_tools#api_token|Δημιουργία API token]].\\ Σε όλα τα παρακάτω υποθέτουμε ότι το url του eclass είναι το //eclass.localdomain//, ενώ όπου αναφέρεται ο κωδικός μαθήματος, θεωρούμε ότι είναι το //TEST100//.\\ Σημειώστε ότι σε περίπτωση επιτυχίας επιστρέφεται το αντίστοιχο //json object//, ενώ επιστρέφεται σχετικό μήνυμα λάθους σε περίπτωση αποτυχίας. Σε όλες τις κλήσεις που απαιτείται authentication, το token μπορεί να περαστεί με τρεις τρόπους: - Ως παράμετρος στο URL (πχ. ''https://eclass.localdomain/api/v1/scormtracking/token=eclass_d9d10ac9a2cb75bafc3cf28baf5d0bb84b3d77e3d007b495d3fd0a6974ef48da&group_id=1'') - Ως παράμετρος 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" }