Junior
Μιλήστε μας για τη μέθοδο PUT στο REST API.
sobes.tech AI
Απάντηση από AI
Η μέθοδος PUT χρησιμοποιείται για τη δημιουργία ή ενημέρωση πόρου στη συγκεκριμένη URI.
Βασικά χαρακτηριστικά:
- Ιδιομορφη: Η επανάληψη της ίδιας αίτησης PUT με το ίδιο σώμα θα οδηγήσει στην ίδια κατάσταση του πόρου στον διακομιστή (αν και η απάντηση μπορεί να διαφέρει).
- Πλήρης αντικατάσταση: Η αίτηση PUT στέλνει μια πλήρη αναπαράσταση του πόρου, αντικαθιστώντας την υπάρχουσα.
- Δημιουργία ή ενημέρωση: Αν ο πόρος στη συγκεκριμένη URI δεν υπάρχει, το PUT τον δημιουργεί. Αν υπάρχει, τον ενημερώνει. Η απουσία πόρου σε μια επιτυχημένη αίτηση PUT συνήθως οδηγεί στη δημιουργία, που επιστρέφει συνήθως κατάσταση 201 Created. Η ενημέρωση ενός υπάρχοντος πόρου επιστρέφει συνήθως 200 OK ή 204 No Content (αν δεν υπάρχει σώμα στην απάντηση).
Τυπικά σενάρια χρήσης:
- Πλήρης ενημέρωση του προφίλ χρήστη.
- Δημιουργία πόρου αν ο πελάτης ορίζει το URI του.
Παράδειγμα αίτησης PUT:
PUT /users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
{
"id": 123,
"name": "Νέο Όνομα",
"email": "new.email@example.com"
}
Ο διακομιστής θα λάβει αυτό το αίτημα και θα δημιουργήσει τον χρήστη με id=123 ή θα αντικαταστήσει πλήρως τις πληροφορίες του χρήστη με αυτό το ID με τα δεδομένα από το σώμα του αιτήματος.
Η μέθοδος PUT διαφέρει από την POST ως εξής:
- Το PUT χρησιμοποιείται για την ενημέρωση ή δημιουργία πόρου σε γνωστό URI, που ορίζεται από τον πελάτη. Το POST χρησιμοποιείται για τη δημιουργία πόρου, όπου ο διακομιστής ορίζει το URI του νέου πόρου, ή για άλλες ενέργειες που δεν ταιριάζουν σε άλλες μεθόδους HTTP.
- Το PUT είναι ιδιομορφο, το POST όχι. Τα επαναλαμβανόμενα αιτήματα POST με το ίδιο σώμα μπορούν να δημιουργήσουν πολλαπλούς ίδιους πόρους ή να προκαλέσουν διαφορετικά αποτελέσματα.
Πίνακας σύγκρισης PUT και POST:
| Χαρακτηριστικό | PUT | POST |
|---|---|---|
| Σκοπός | Δημιουργία ή ενημέρωση πόρου | Δημιουργία πόρου, αποστολή δεδομένων |
| Ιδιομορφη | Ναι | Όχι |
| Ορισμός URI | Από τον πελάτη | Από τον διακομιστή |
| Επίδραση στον πόρο | Αντικαθιστά ή δημιουργεί πλήρως | Συνήθως προσθέτει ή εκτελεί ενέργεια |