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.
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:
👉 Esta correspondencia hace que las APIs REST sean intuitivas y predecibles.
El método GET se usa para recuperar datos de un servidor.
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
).
El método POST se usa para crear un nuevo recurso en el servidor.
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.
El método PUT reemplaza por completo un recurso existente.
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.
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.
El método DELETE sirve para borrar un recurso del servidor.
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.
GET /usuarios/1
.POST /usuarios
.PUT /usuarios/1
.PATCH /usuarios/1
.DELETE /usuarios/1
.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
Los métodos HTTP son la base del funcionamiento de una API REST:
👉 Comprenderlos es fundamental, porque toda interacción con APIs REST gira en torno a estas acciones.