Ποια είναι η κύρια διαφορά μεταξύ PUT
και PATCH
αιτήματα και πότε πρέπει να χρησιμοποιούμε το ένα πάνω στο άλλο;
Τα PUT και PATCH είναι ρήματα HTTP και και τα δύο σχετίζονται με την ενημέρωση ενός πόρου.
Η κύρια διαφορά μεταξύ των αιτημάτων PUT και PATCH είναι ο τρόπος με τον οποίο ο διακομιστής επεξεργάζεται την κλειστή οντότητα για να τροποποιήσει τον πόρο που προσδιορίζεται από το Request-URI.
Σε ένα PUT
αίτημα, η κλειστή οντότητα θεωρείται τροποποιημένη έκδοση του πόρου που είναι αποθηκευμένος στον διακομιστή προέλευσης και ο πελάτης ζητά την αντικατάσταση της αποθηκευμένης έκδοσης.
Με το PATCH
, ωστόσο, η κλειστή οντότητα περιέχει ένα σύνολο οδηγιών που περιγράφουν πώς ένας πόρος που βρίσκεται επί του παρόντος στον διακομιστή προέλευσης πρέπει να τροποποιηθεί για να δημιουργήσει μια νέα έκδοση.
Επίσης, μια άλλη διαφορά είναι ότι όταν θέλετε να ενημερώσετε έναν πόρο με PUT
αίτημα, πρέπει να στείλετε το πλήρες ωφέλιμο φορτίο ως αίτημα ενώ με το PATCH
, στέλνετε μόνο τις παραμέτρους που θέλετε να ενημερώσετε.
Σχετιζομαι με:
Ας υποθέσουμε ότι έχουμε έναν πόρο που περιέχει το όνομα και το επώνυμο ενός ατόμου.
Αν θέλουμε να αλλάξουμε το όνομα τότε στέλνουμε ένα PUT
αίτημα για ενημέρωση
{ 'first': 'Michael', 'last': 'Angelo' }
Εδώ, αν και αλλάζουμε μόνο το όνομα, με PUT
ζητήστε να στείλουμε και τις δύο παραμέτρους πρώτα και τελευταία. Με άλλα λόγια, είναι υποχρεωτικό να στείλετε ξανά όλες τις τιμές, το πλήρες ωφέλιμο φορτίο.
Όταν στέλνουμε ένα PATCH
αίτημα, ωστόσο, στέλνουμε μόνο τα δεδομένα που θέλουμε να ενημερώσουμε. Με άλλα λόγια, στέλνουμε μόνο το όνομα για ενημέρωση, δεν χρειάζεται να στείλουμε το επώνυμο.
Για αυτόν τον λόγο, PATCH
Το αίτημα απαιτεί μικρότερο εύρος ζώνης.