Sobes.tech
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 Από τον πελάτη Από τον διακομιστή
Επίδραση στον πόρο Αντικαθιστά ή δημιουργεί πλήρως Συνήθως προσθέτει ή εκτελεί ενέργεια