Junior
Ποια API μπορούν να χαρακτηριστούν RESTful;
sobes.tech AI
Απάντηση από AI
Οι RESTful API πληρούν τις αρχές του αρχιτεκτονικού στυλ REST:
- Client-server: Διαχωρισμός ευθυνών μεταξύ του πελάτη, που ζητά πόρους, και του διακομιστή, που τους παρέχει.
- Stateless (Χωρίς κατάσταση): Κάθε αίτημα από τον πελάτη προς τον διακομιστή πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες για την επεξεργασία του. Ο διακομιστής δεν διατηρεί κατάσταση συνεδρίας του πελάτη.
- Cacheable (Προσωρινά αποθηκεύσιμο): Ο διακομιστής πρέπει να υποδεικνύει ρητά ή έμμεσα αν οι απαντήσεις μπορούν να αποθηκευτούν στην cache από τον πελάτη ή ενδιάμεσους.
- Σύστημα σε στρώματα: Ο πελάτης δεν μπορεί να διακρίνει μεταξύ άμεσης κλήσης στον διακομιστή και κλήσης μέσω ενδιάμεσων στρωμάτων (proxy, load balancers κ.ά.).
- Κώδικας κατ' αίτηση (προαιρετικό): Ο διακομιστής μπορεί προσωρινά να επεκτείνει τη λειτουργικότητα του πελάτη μεταδίδοντας εκτελέσιμο κώδικα (π.χ. JavaScript).
- Ενιαία διεπαφή: Ο πιο σημαντικός κανόνας των RESTful API. Αποτελείται από τέσσερις περιορισμούς:
- Ταυτοποίηση πόρων: Οι πόροι ταυτοποιούνται μέσω URL.
- Διαχείριση πόρων μέσω αναπαραστάσεων: Ο πελάτης αλληλεπιδρά με τους πόρους λαμβάνοντας τις αναπαραστάσεις τους (π.χ. σε μορφή JSON, XML).
- Μηνύματα αυτοπεριγραφόμενα: Κάθε μήνυμα περιέχει αρκετές πληροφορίες για την επεξεργασία, συμπεριλαμβανομένων των μεταδεδομένων σχετικά με τον τρόπο επεξεργασίας του μηνύματος και του πόρου.
- HATEOAS (Hypermedia as the Engine of Application State): Ο διακομιστής πρέπει να περιέχει υπερσυνδέσμους στις απαντήσεις του, που επιτρέπουν στον πελάτη να ανακαλύψει διαθέσιμες ενέργειες και να πλοηγηθεί μεταξύ των καταστάσεων της εφαρμογής. Αυτός είναι ο λιγότερο συχνά εκπληρούμενος κανόνας.
Οι RESTful API χρησιμοποιούν τυπικές μεθόδους HTTP (GET, POST, PUT, DELETE, PATCH) για λειτουργίες πάνω σε πόρους που ταυτοποιούνται από URIs.
Για παράδειγμα, ένα GET αίτημα στο /api/users/123 λαμβάνει την αναπαράσταση του χρήστη με ID 123.