Sobes.tech
Senior

Tell me more about the PATCH method.

sobes.tech AI

Answer from AI

The HTTP PATCH method is used for partial updates of a resource. Unlike PUT, which typically replaces the entire resource, PATCH allows sending only the fields that need to be changed.

Features of PATCH:

  • Partial update: you can modify one or several fields without sending the entire object.
  • Idempotency is not guaranteed by default but can be implemented at the server level.
  • The request body contains instructions for the change, usually in JSON format with the modified fields.

Example of using PATCH to update a user's email:

PATCH /users/123 HTTP/1.1
Content-Type: application/json

{
  "email": "newemail@example.com"
}

On the server, this means only the email field will be updated, and other user data will remain unchanged.

In Go, PATCH can be handled similarly to POST/PUT, but it is important to correctly apply changes to the existing object, for example:

func updateUser(w http.ResponseWriter, r *http.Request) {
    id := mux.Vars(r)["id"]
    var updates map[string]interface{}
    json.NewDecoder(r.Body).Decode(&updates)

    user := getUserFromDB(id)
    if email, ok := updates["email"].(string); ok {
        user.Email = email
    }
    // other fields...

    saveUserToDB(user)
    w.WriteHeader(http.StatusOK)
}

Thus, PATCH is convenient for partial updates without the need to send the entire object.

Tell me more about the PATCH method. — Golang - sobes.tech