API Reference της υπηρεσίας Users

Endpoint: https://ws.gunet.gr/?service=users&key=API_KEY

  1. simpleusersearch()
  2. simplenamesearch()
  3. lookupuid()
  4. lookupmail()
  5. getdepartments()

Σημείωση για την παράμετρο επιλογής ιδρύματος

Σε όλες τις παρακάτω methods, η παράμετρος institution είναι προαιρετική: εάν το API key σας είναι συνδεδεμένο με ένα συγκεκριμένο ίδρυμα μόνο, η αναζήτηση θα γίνεται πάντοτε σε αυτό το ίδρυμα και η παράμετρος θα αγνοείται. Αν όμως η εφαρμογή σας είναι διαϊδρυματική, τότε θα πρέπει να ορίσετε σε ποιο ίδρυμα να πραγματοποιηθεί η αναζήτηση.

Ποια method να επιλέξω;

Τα παρακάτω tips είναι ενδεικτικά και δεν είναι απαραίτητη η εφαρμογή τους.

  • Χρησιμοποιήστε τις simpleusersearch, simplenamesearch, lookupmail για εφαρμογές όπως ένα autocomplete form widget σε κάποιο user interface, και γενικά για να έχετε έναν φιλικό προς τον χρήστη τρόπο να αναζητήσει την πληροφορία που επιθυμεί.
  • Χρησιμοποιήστε τις lookupuid, lookupmail για validation του input.
  • Καλέστε μία φορά την getdepartments για να πάρετε ένα "lookup table" για τις οργανωτικές μονάδες ενός ιδρύματος. Κάντε cache το αποτέλεσμα για μεγάλο χρονικό διάστημα.

Methods:

  • simpleusersearch: Αναζητεί στο username και τα e-mail των χρηστών, και επιστρέφει τις εγγραφές που ταιριάζουν. Ψάχνει και στις εναλλακτικές e-mail διευθύνσεις των χρηστών, δηλ. θα βρει και την "nipapado@math.uoa.gr" και την "n.papadopoulos@math.uoa.gr".

    Παράμετρος query: το string προς αναζήτηση
    Παράμετρος affiliation: εάν επιθυμούμε να ψάχνουμε μόνο σε συγκεκριμένες κατηγορίες χρηστών (ένα από: faculty, staff, employee, student, affiliate, alum, member).
    Παράμετρος exact: εάν είναι 1, ψάχνει για το ζητούμενο string ακριβώς. Αν είναι 0, αρκεί να περιέχεται το string κάπου.
    Παράμετρος institution: Ίδρυμα (π.χ. uoa, teipat).
    Αποτελέσματα: Ένα array με, μέγιστο, 10 εγγραφές. Η κάθε μία περιέχει ένα JSON object / associative array με keys:
    • uid
    • name_en (αν υπάρχει)
    • name_el (αν υπάρχει),
    • mail (το πρωτεύον e-mail του χρήστη, αν υπάρχει)
    • affiliation (η πρωτεύουσα ιδιότητα του χρήστη, ένα από: faculty, staff, employee, student, affiliate, alum, member)
    • title_en (τίτλος / ιδιότητα στα Αγγλικά)
    • title_el (τίτλος / ιδιότητα στα Ελληνικά, π.χ. Επίκουρος Καθηγητής)
    • orgunitdn (το dn της πρωτεύουσας μονάδας του χρήστη)

  • simplenamesearch: Αναζητεί στο ονοματεπώνυμο των χρηστών, και επιστρέφει τις εγγραφές που ταιριάζουν.

    Παράμετρος query: το string προς αναζήτηση, ελληνικά ή αγγλικά.
    Παράμετρος affiliation: εάν επιθυμούμε να ψάχνουμε μόνο σε συγκεκριμένες κατηγορίες χρηστών (ένα από: faculty, staff, employee, student, affiliate, alum, member).
    Παράμετρος institution: Ίδρυμα (π.χ. uoa, teipat).

    Αποτελέσματα: Ένα array όπως παραπάνω (βλ. simpleusersearch)

  • lookupuid: Ελέγχει αν το username που ερωτείται είναι έγκυρο.

    Παράμετρος query: το username προς αναζήτηση
    Παράμετρος institution: Ίδρυμα (π.χ. uoa, teipat).

    Αποτέλεσμα: Ένα array με τα στοιχεία του χρήστη αν είναι έγκυρο (βλ. παραπάνω στα αποτελέσματα της simpleusersearch), ή 0 αν δεν υπάρχει.

  • lookupmail: Ελέγχει αν το e-mail που ερωτείται είναι έγκυρο e-mail χρήστη. Η συγκεκριμένη μέθοδος ψάχνει και στις εναλλακτικές e-mail διευθύνσεις των χρηστών, δηλ. θα βρει και την "nipapado@math.uoa.gr" και την "n.papadopoulos@math.uoa.gr".

    Παράμετρος query: το e-mail προς αναζήτηση
    Παράμετρος institution: Ίδρυμα (π.χ. uoa, teipat).

    Αποτέλεσμα: Ένα JSON object / associative array με τα στοιχεία του χρήστη αν είναι έγκυρο (βλ. παραπάνω στα αποτελέσματα της simpleusersearch), ή 0 αν δεν υπάρχει.

  • getdepartments: Επιστρέφει όλες τις μονάδες του Ιδρύματος. Συστήνουμε να καλείτε αυτή τη μέθοδο μία φορά και να κάνετε cache για μεγάλο χρονικό διάστημα το αποτέλεσμα.
    Παράμετρος institution: Ίδρυμα (π.χ. uoa, teipat).

    Αποτέλεσμα: Ένα JSON object / associative array, με key το dn της μονάδας, και value ένα array με keys: name_el, name_en.