Το REST (Representational State Transfer) είναι ένα αρχιτεκτονικό στυλ για τη σχεδίαση δικτυωμένων υπηρεσιών Web API μέσω HTTP.
Μέθοδοι HTTP & Σημασιολογία
| Μέθοδος | Στοχευμένη ενέργεια | Ασφαλής | Ταυτοδύναμη |
|---|---|---|---|
GET |
Ανάκτηση αναπαράστασης πόρου | Ναι | Ναι |
POST |
Δημιουργία νέου θυγατρικού πόρου | Όχι | Όχι |
PUT |
Αντικατάσταση ολόκληρης της αναπαράστασης πόρου | Όχι | Ναι |
PATCH |
Μερική ενημέρωση ιδιοτήτων πόρου | Όχι | Όχι |
DELETE |
Διαγραφή πόρου | Όχι | Ναι |
HEAD |
Ανάκτηση κεφαλίδων χωρίς σώμα απόκρισης | Ναι | Ναι |
OPTIONS |
Ερώτηση υποστηριζόμενων μεθόδων HTTP για το endpoint | Ναι | Ναι |
Συνήθεις κωδικοί κατάστασης HTTP
Επιτυχία (2xx)
200 OK: Το αίτημα πέτυχε (το σώμα περιέχει την αναπαράσταση).201 Created: Ο πόρος δημιουργήθηκε επιτυχώς (η κεφαλίδαLocationυποδεικνύει το URI).202 Accepted: Το αίτημα έγινε δεκτό για ασύγχρονη επεξεργασία.204 No Content: Η ενέργεια πέτυχε, δεν επιστρέφεται σώμα απόκρισης (σύνηθες στοDELETE).
Σφάλματα πελάτη (4xx)
400 Bad Request: Εσφαλμένη σύνταξη, μη έγκυρες παράμετροι ή αποτυχία επικύρωσης.401 Unauthorized: Απουσιάζει ή είναι άκυρη η πιστοποίηση ταυτότητας.403 Forbidden: Ο πιστοποιημένος χρήστης δεν έχει άδεια πρόσβασης στον πόρο.404 Not Found: Το URI του πόρου δεν υπάρχει.409 Conflict: Το αίτημα έρχεται σε σύγκρουση με την τρέχουσα κατάσταση πόρου (π.χ. διπλότυπο κλειδί).422 Unprocessable Entity: Ορθώς δομημένο αίτημα που απέτυχε στη σημασιολογική επικύρωση.429 Too Many Requests: Υπέρβαση ορίου ρυθμού αιτημάτων (Rate Limit).
Σφάλματα διακομιστή (5xx)
500 Internal Server Error: Γενικό μη διαχειρισμένο σφάλμα διακομιστή.502 Bad Gateway: Ο ανάντη διακομιστής επέστρεψε μη έγκυρη απόκριση.503 Service Unavailable: Ο διακομιστής είναι υπερφορτωμένος ή υπό συντήρηση.
Τυπικό περίβλημα σφάλματος JSON
{
"error": {
"code": "VALIDATION_ERROR",
"message": "The email address provided is already registered.",
"details": [
{
"field": "email",
"issue": "unique_constraint_violated"
}
]
}
}