Sobes.tech
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 არის იდემპოტენტური მეთოდი სრული ჩანაცვლებისთვის, PATCH — ნაწილობრივი ცვლილებებისთვის.