Junior — Middle
Εξηγήστε τις διαφορές μεταξύ των μεθόδων HTTP PUT και PATCH κατά την ενημέρωση πόρων.
sobes.tech AI
Απάντηση από AI
Οι βασικές διαφορές μεταξύ των μεθόδων HTTP PUT και PATCH κατά την ενημέρωση πόρων:
- PUT — χρησιμοποιείται για πλήρη ενημέρωση του πόρου. Ο πελάτης στέλνει μια πλήρη αναπαράσταση του πόρου, και ο διακομιστής αντικαθιστά τον υπάρχοντα πόρο με αυτήν.
- PATCH — χρησιμοποιείται για μερική ενημέρωση του πόρου. Ο πελάτης στέλνει μόνο τα πεδία που θέλει να αλλάξει, και ο διακομιστής ενημερώνει μόνο αυτά, αφήνοντας τα άλλα αμετάβλητα.
Παράδειγμα:
Αν έχετε ένα αντικείμενο χρήστη με πεδία name και email:
- Με αίτημα PUT, πρέπει να στείλετε και τα δύο πεδία, διαφορετικά αυτά που λείπουν θα διαγραφούν ή θα επαναφερθούν.
- Με αίτημα PATCH, μπορείτε να στείλετε μόνο το
email, και ο διακομιστής θα το ενημερώσει μόνο.
Στη C# Web API, οι μέθοδοι μπορεί να μοιάζουν έτσι:
[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
// Πλήρης ενημέρωση χρήστη
}
[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
// Μερική ενημέρωση χρήστη
}
Έτσι, το PUT είναι μια idempotent μέθοδος για πλήρη αντικατάσταση, το PATCH για μερικές αλλαγές.