Métodos HTTP en REST (GET, POST, PUT, DELETE, PATCH)

Cuando trabajamos con APIs REST, los recursos (usuarios, productos, pedidos, etc.) se manipulan a través de métodos HTTP. Cada método tiene un propósito claro y definido.

1 ¿Qué son los métodos HTTP?

El protocolo HTTP (HyperText Transfer Protocol) no solo sirve para navegar páginas web, también define acciones que los clientes pueden realizar sobre recursos en un servidor.

En REST, estas acciones se mapean directamente a los métodos HTTP:

  • GET: obtener información.
  • POST: crear un nuevo recurso.
  • PUT: actualizar un recurso completo.
  • PATCH: actualizar parcialmente un recurso.
  • DELETE: eliminar un recurso.

👉 Esta correspondencia hace que las APIs REST sean intuitivas y predecibles.

2 GET — Obtener información

El método GET se usa para recuperar datos de un servidor.

  • Seguro: no cambia nada en el servidor.
  • Idempotente: si lo ejecutamos varias veces, el resultado será el mismo.

Ejemplo de petición (usando la API pública JSONPlaceholder):

GET https://jsonplaceholder.typicode.com/users/1

Respuesta en JSON:

{
  "id": 1,
  "name": "Leanne Graham",
  "email": "Sincere@april.biz"
}

👉 Sirve para listar recursos (/users) o para obtener uno específico (/users/1).

3 POST — Crear un recurso

El método POST se usa para crear un nuevo recurso en el servidor.

  • No idempotente: cada vez que lo ejecutamos, se genera un recurso distinto.

Ejemplo con cURL (crear un post):

curl -X POST https://jsonplaceholder.typicode.com/posts ^
  -H "Content-Type: application/json" ^
  -d "{ \"title\": \"Hola Mundo\", \"body\": \"Este es un ejemplo\", \"userId\": 1 }"

Respuesta en JSON:

{
  "id": 101,
  "title": "Hola Mundo",
  "body": "Este es un ejemplo",
  "userId": 1
}

👉 El servidor devolvió un objeto con id generado automáticamente.

4 PUT — Actualizar un recurso completo

El método PUT reemplaza por completo un recurso existente.

  • Idempotente: si enviamos la misma actualización varias veces, el resultado será el mismo.

Ejemplo con cURL (actualizar post con id = 1):

curl -X PUT https://jsonplaceholder.typicode.com/posts/1 ^
  -H "Content-Type: application/json" ^
  -d "{ \"id\": 1, \"title\": \"Nuevo título\", \"body\": \"Nuevo contenido\", \"userId\": 1 }"

Respuesta en JSON:

{
  "id": 1,
  "title": "Nuevo título",
  "body": "Nuevo contenido",
  "userId": 1
}

👉 Observá que se sobrescribieron todos los campos del recurso.

5 PATCH — Actualizar parcialmente un recurso

El método PATCH sirve para modificar solo algunos campos de un recurso. Es muy útil cuando solo necesitamos cambiar una parte.

Ejemplo con cURL (modificar solo el título de un post):

curl -X PATCH https://jsonplaceholder.typicode.com/posts/1 ^
  -H "Content-Type: application/json" ^
  -d "{ \"title\": \"Título actualizado con PATCH\" }"

Respuesta en JSON:

{
  "id": 1,
  "title": "Título actualizado con PATCH",
  "body": "Nuevo contenido",
  "userId": 1
}

👉 A diferencia de PUT, acá no fue necesario enviar todo el objeto, solo lo que queríamos modificar.

6 DELETE — Eliminar un recurso

El método DELETE sirve para borrar un recurso del servidor.

  • Idempotente: si eliminamos dos veces el mismo recurso, la segunda vez simplemente no encontrará nada.

Ejemplo con cURL:

curl -X DELETE https://jsonplaceholder.typicode.com/posts/1

Respuesta en JSON (servidor simulado):

{}

👉 En un servidor real, el recurso ya no estaría disponible en peticiones posteriores.

7 Comparación entre métodos

  • GET: Acción = obtener; Idempotente = Sí; Ejemplo = GET /usuarios/1.
  • POST: Acción = crear; Idempotente = No; Ejemplo = POST /usuarios.
  • PUT: Acción = reemplazar; Idempotente = Sí; Ejemplo = PUT /usuarios/1.
  • PATCH: Acción = modificar parte; Idempotente = No siempre; Ejemplo = PATCH /usuarios/1.
  • DELETE: Acción = eliminar; Idempotente = Sí; Ejemplo = DELETE /usuarios/1.

8 Buenas prácticas en el uso de métodos HTTP

  • Usar GET solo para obtener datos, nunca para modificar.
  • Usar POST para crear y PUT/PATCH para actualizar.
  • Responder siempre con códigos de estado HTTP correctos:
  • 200 OK: petición exitosa.
  • 201 Created: nuevo recurso creado.
  • 400 Bad Request: error del cliente.
  • 404 Not Found: recurso no encontrado.
  • 500 Internal Server Error: error en el servidor.

Mantener consistencia en los endpoints:

GET /productos            # lista de productos
POST /productos           # crear producto
GET /productos/1          # obtener producto con id=1
PUT /productos/1          # actualizar producto con id=1
DELETE /productos/1       # eliminar producto con id=1

9 Conclusión del capítulo

Los métodos HTTP son la base del funcionamiento de una API REST:

  • GET: leer.
  • POST: crear.
  • PUT: reemplazar.
  • PATCH: modificar parcialmente.
  • DELETE: eliminar.

👉 Comprenderlos es fundamental, porque toda interacción con APIs REST gira en torno a estas acciones.