Sobes.tech
Junior

Τι είναι το REST API;

sobes.tech AI

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

Το REST API είναι ένα αρχιτεκτονικό στυλ για την κατασκευή κατανεμημένων συστημάτων. Οι βασικές αρχές του REST:

  • Statelessness: Κάθε αίτημα από τον πελάτη προς τον διακομιστή πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες για την επεξεργασία. Ο διακομιστής δεν διατηρεί κατάσταση του πελάτη μεταξύ των αιτημάτων.
  • Client-Server: Ξεκάθαρος διαχωρισμός ευθυνών μεταξύ πελάτη και διακομιστή. Ο πελάτης στέλνει αιτήματα, ο διακομιστής τα επεξεργάζεται.
  • Cacheable: Ο διακομιστής πρέπει να υποδεικνύει αν οι απαντήσεις μπορούν να αποθηκευτούν στην cache από τον πελάτη ή ενδιάμεσους.
  • Layered System: Ο πελάτης δεν χρειάζεται απαραίτητα να αλληλεπιδρά άμεσα με τον τελικό διακομιστή· μπορεί να το κάνει μέσω ενδιάμεσων στρωμάτων (proxy, load balancers).
  • Uniform Interface: Ένας ενιαίος και τυποποιημένος τρόπος αλληλεπίδρασης μεταξύ πελάτη και διακομιστή. Αυτό περιλαμβάνει:
    • Identification of Resources: Οι πόροι (δεδομένα) αναγνωρίζονται μέσω URL.
    • Manipulation of Resources Through Representations: Ο πελάτης αλληλεπιδρά με τους πόρους, λαμβάνοντας τις αναπαραστάσεις τους (π.χ., JSON, XML) και στέλνοντας νέες αναπαραστάσεις για τροποποίηση.
    • Self-descriptive Messages: Κάθε μήνυμα περιέχει αρκετές πληροφορίες για να κατανοηθεί πώς να επεξεργαστεί.
    • HATEOAS (Hypertext As The Engine Of Application State): Οι πόροι πρέπει να περιέχουν συνδέσμους (hyperlinks) σε σχετικούς πόρους και διαθέσιμες ενέργειες.

Το REST API συνήθως χρησιμοποιεί τυποποιημένες μεθόδους HTTP για την εκτέλεση λειτουργιών στους πόρους:

  • GET: Ανάκτηση πόρου ή συλλογής πόρων.
  • POST: Δημιουργία νέου πόρου.
  • PUT: Πλήρης ενημέρωση υπάρχοντος πόρου.
  • PATCH: Μερική ενημέρωση υπάρχοντος πόρου.
  • DELETE: Διαγραφή πόρου.

Παράδειγμα JSON αναπαράστασης πόρου:

{
  "id": 1, // Αναγνωριστικό
  "name": "Resource Name", // Όνομα πόρου
  "description": "Detailed description of the resource." // Περιγραφή πόρου
}

Ο έλεγχος REST API περιλαμβάνει την επαλήθευση:

  • Λειτουργικότητας (ορθότητα απαντήσεων στα αιτήματα).
  • Διαχείριση σφαλμάτων.
  • Απόδοσης.
  • Ασφάλειας.
  • Συμμόρφωσης με την τεκμηρίωση.