stackademic

The leading education platform for anyone with an interest in software development.

HTTP Methods

How GET, POST, PUT, PATCH, and DELETE map to actions on API resources

Overview

HTTP methods (also called verbs) tell the server what action a client wants to perform on a resource. Choosing the right method makes an API predictable and lets caches, proxies, and browsers behave correctly. Two key ideas guide the choice: safe methods don't change data, and idempotent methods produce the same result no matter how many times they run.

Syntax / Usage

Each method has an intended purpose. GET reads, POST creates, PUT replaces, PATCH partially updates, and DELETE removes.

GET    /articles/7        # safe, idempotent — read
POST   /articles          # not idempotent — create new
PUT    /articles/7        # idempotent — full replace
PATCH  /articles/7        # partial update
DELETE /articles/7        # idempotent — remove

Examples

A PATCH updates only the fields you send, leaving the rest untouched:

PATCH /articles/7 HTTP/1.1
Content-Type: application/json

{ "title": "Updated Title" }
{
  "id": 7,
  "title": "Updated Title",
  "body": "Original body stays the same"
}

A PUT replaces the entire resource, so omitted fields may be cleared:

PUT /articles/7 HTTP/1.1
Content-Type: application/json

{ "title": "New Title", "body": "New body" }

Common Mistakes

  • Using GET to change data — it should never have side effects
  • Using POST for updates when PUT or PATCH fits better
  • Confusing PUT (full replace) with PATCH (partial update)
  • Assuming DELETE is unsafe to retry — it's idempotent, so retries are fine
  • Sending a request body with GET, which many servers ignore

See Also

api-design-rest-basics api-design-status-codes api-design-error-handling