DEV Community

Sospeter Mong'are
Sospeter Mong'are

Posted on

Understanding the Difference Between PUT and PATCH in API Development

The difference between PUT and PATCH in APIs lies in how they handle updates to resources:

PUT vs PATCH

PUT

  • Definition: Replaces the entire resource with the new data provided. If any fields are omitted in the request, they may be reset to their default values or removed.
  • Use Case: When you want to update the entire resource or replace it completely.
  • Idempotency: PUT requests are idempotent (repeating the same request produces the same result).

Example: Updating a user's profile information.

Request:

PUT /users/1
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john.doe@example.com",
  "phone": "123456789"
}
Enter fullscreen mode Exit fullscreen mode
  • If you omit "phone", it might be set to null or removed entirely from the resource.

PATCH

  • Definition: Partially updates a resource. Only the fields specified in the request are updated, leaving other fields unchanged.
  • Use Case: When you want to modify specific fields of a resource without altering the entire resource.
  • Idempotency: PATCH requests are also idempotent, but only update the specified fields.

Example: Updating only the user's phone number.

Request:

PATCH /users/1
Content-Type: application/json

{
  "phone": "0701123123"
}
Enter fullscreen mode Exit fullscreen mode
  • Only the phone field is updated; other fields like name and email remain unchanged.

Key Comparison Table

Aspect PUT PATCH
Update Type Full resource update Partial resource update
Fields Affected All fields (replace resource) Only specified fields
Common Use Case Replace entire user profile Update specific profile fields
Idempotency Yes Yes

Choosing Between PUT and PATCH

  • Use PUT if you need to replace or overwrite the resource.
  • Use PATCH for more efficient partial updates, especially for large resources.

By understanding these differences, you can design APIs that better match the expected behavior and resource handling.

Top comments (0)