Sobes.tech
Junior

Τι είναι η αρχιτεκτονική προσανατολισμένη στο REST (ROA);

sobes.tech AI

Απάντηση από AI

Η αρχιτεκτονική προσανατολισμένη στο REST (Transfer of Representational State) είναι ένα στυλ αρχιτεκτονικής για κατανεμημένα συστήματα, βασισμένο σε ένα σύνολο αρχών που ορίζουν πώς προσδιορίζονται οι πόροι και πώς γίνεται η αλληλεπίδραση μεταξύ πελάτη και διακομιστή.

Βασικές αρχές του REST:

  1. Πελάτης-διακομιστής (Client-Server): Διαχωρισμός ευθυνών. Ο πελάτης ασχολείται με το περιβάλλον χρήστη, ο διακομιστής με την αποθήκευση και επεξεργασία δεδομένων.
  2. Χωρίς κατάσταση (Stateless): Κάθε αίτημα από τον πελάτη προς τον διακομιστή πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες για την επεξεργασία του. Ο διακομιστής δεν διατηρεί κατάσταση του πελάτη μεταξύ των αιτημάτων.
  3. Μπορεί να αποθηκευτεί στην cache: Οι πελάτες και οι ενδιάμεσοι κόμβοι μπορούν να αποθηκεύουν τις απαντήσεις του διακομιστή στην cache για βελτίωση της απόδοσης και της κλιμάκωσης.
  4. Ενιαία διεπαφή:
    • Ταυτοποίηση πόρων: Οι πόροι ταυτοποιούνται μοναδικά μέσω URL.
    • Διαχείριση πόρων μέσω αναπαραστάσεων: Ο πελάτης μπορεί να διαχειρίζεται πόρους χρησιμοποιώντας την αναπαράσταση του πόρου (π.χ., JSON, XML).
    • Μηνύματα αυτοπεριγραφόμενα: Κάθε μήνυμα περιέχει αρκετές πληροφορίες για να κατανοηθεί και να επεξεργαστεί.
    • Διαχείριση κατάστασης εφαρμογής μέσω υπερμέσων (HATEOAS): Ο πελάτης αλληλεπιδρά με την εφαρμογή αποκλειστικά μέσω υπερσυνδέσμων που παρέχονται στις απαντήσεις του διακομιστή.
  5. Συστήματα σε στρώματα: Το σύστημα μπορεί να οργανωθεί σε στρώματα (π.χ., proxy, πύλες), και κάθε συστατικό βλέπει μόνο το επόμενο στρώμα με το οποίο αλληλεπιδρά.
  6. Κώδικας κατ' απαίτηση (Code-On-Demand - προαιρετικό): Ο διακομιστής μπορεί προσωρινά να επεκτείνει τη λειτουργικότητα του πελάτη μεταδίδοντας εκτελέσιμο κώδικα (π.χ., JavaScript).

Στο QA, ο έλεγχος API REST περιλαμβάνει την επαλήθευση της συμμόρφωσης με αυτές τις αρχές, καθώς και:

  • Λειτουργικός έλεγχος (μέθοδοι HTTP GET, POST, PUT, DELETE).
  • Έλεγχος φόρτου.
  • Έλεγχος ασφαλείας.
  • Έλεγχος συμβατότητας (διαφορετικά φορμά δεδομένων, πελάτες).