Open eClass 4 API

Η έκδοση 4.0 της πλατφόρμας υποστηρίζει τις παρακάτω κλήσεις API.

Για να χρησιμοποιήσετε το api θα πρέπει πρώτα να δημιουργήσετε ένα authentication token. Η δημιουργία του γίνεται μέσα από το διαχειριστικό περιβάλλον της πλατφόρμας. Οδηγίες μπορείτε να βρείτε στο Δημιουργία API token.
Σε όλα τα παρακάτω υποθέτουμε ότι το url του eclass είναι το eclass.localdomain, ενώ όπου αναφέρεται ο κωδικός μαθήματος, θεωρούμε ότι είναι το TEST100.
Σημειώστε ότι σε περίπτωση επιτυχίας επιστρέφεται το αντίστοιχο json object, ενώ επιστρέφεται σχετικό μήνυμα λάθους σε περίπτωση αποτυχίας. Σε όλες τις κλήσεις που απαιτείται authentication, το token μπορεί να περαστεί με τρεις τρόπους:

  1. Ως παράμετρος POST
  2. Στα HTTP Headers με τη μορφή Authorization: Bearer eclass_d9d10ac9a2cb75bafc3cf28baf5d0bb84b3d77e3d007b495d3fd0a6974ef48da

Παράδειγμα κλήσης

curl -H 'Authorization: Bearer (eclass_token) ' 'https://eclass.localdomain/api/v1/courses/

Υποστηρίζονται οι παρακάτω κλήσεις.

Κλήσεις με GET

GET https://eclass.localdomain/api/v1/categories/

 {   
  "id": "1",
  "name": "Κατηγορία 1",
  "description": "Περιγραφή της κατηγορίας 1",
  "timemodified": "2023-03-07 14:11:36",
  "sortorder": "0" 
  }

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"
},

GET https://eclass.localdomain/api/v1/sections/?course_id=TEST100

{
  "id": "1",
  "name": "Επαγγελματικό περιβάλλον και δεοντολογία",
  "summary": ""
},

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"
}

GET https://eclass.localdomain/api/v1/scorms/?course_id=TEST100

{
  "id": 2,
  "name": "Επαγγελματικό περιβάλλον και δεοντολογία",
  "summary": "",
  "order": 1,
  "sco_id": "thematiko1_SCO"
},

GET https://eclass.localdomain/api/v1/scorms/?scorm_id={N}

 {
 "id": 2,
 "name": "Επαγγελματικό περιβάλλον και δεοντολογία",
 "summary": "",
 "order": 1,
 "sco_id": "thematiko1_SCO"
}

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"
  }

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": " "
}

GET https://eclass.localdomain/api/v1/sso/?user_id={N}

Επιστρέφει:

{
"url": "https://eclass.localdomain/modules/auth/sso.php?user=user099&token=642702bd-368303ace346f436945b45bc88190e628aeb7fc5"
}

Κλήσεις με POST

POST https://eclass.localdomain/api/v1/users/

Σημειώστε ότι μπορούμε να την καλέσουμε πολλές φορές για τον ίδιο χρήστη. Εφόσον το username είναι το ίδιο, ενημερώνει τα υπόλοιπα στοιχεία και επιστρέφει το user_id.

Επιστρέφει:

{
"id": user_id
}

POST https://eclass.localdomain/api/v1/groups/

Επιστρέφει:

{
"id": group_id
}

POST https://eclass.localdomain/api/v1/enroll_user/

Το role_id είναι προαιρετικό - αν δεν το περάσουμε, ο χρήστης γίνεται εκπαιδευόμενος. Μπορούμε να την καλέσουμε πολλές φορές για τον ίδιο χρήστη και μάθημα.

Επιστρέφει αν δεν υπάρχει σφάλμα:

{
"status": "ok"
}

POST https://eclass.localdomain/api/v1/unenroll_user/

Επιστρέφει αν δεν υπαρχει σφάλμα:

{
"status": "ok"
}