Hacking Web - CRUD API
📖 ¿Qué es CRUD?
🔄 CRUD son las 4 operaciones básicas sobre datos en APIs y BD:
-
🆕 Create (POST) → Crear un nuevo registro.
-
📖 Read (GET) → Leer o consultar datos.
-
✏️ Update (PUT/PATCH) → Actualizar un registro existente.
-
🗑️ Delete (DELETE) → Eliminar un registro.
📊 Normalmente devuelven los datos en JSON.
🛠️ Para ver el JSON más bonito → usar jq ✨
🌍 Estructura de la URL
-
📂
/api.php/city/→ 📜 Lista todas las ciudades. -
🏙️
/api.php/city/<nombre>→ 🎯 Opera sobre esa ciudad en concreto.
💻 Comandos con curl
📖 Read (GET)
- 🔎 Obtener todos los datos:
curl -s http://<IP>:<PORT>/api.php/city/ | jq
- 🎯 Obtener un registro específico (ejemplo Oñati 🏞️):
curl -s http://<IP>:<PORT>/api.php/city/Oñati | jq
🆕 Create (POST)
- 👉 Crea una nueva ciudad:
curl -X POST http://<IP>:<PORT>/api.php/city/ \
-H 'Content-Type: application/json' \
-d '{"city_name":"Oñati","country_name":"ES"}'
✔️ Si funciona → aparece en la lista al hacer un GET.
✏️ Update (PUT)
- 👉 Modifica un registro existente (ej. renombrar Oñati a Oñati_Basque):
curl -X PUT http://<IP>:<PORT>/api.php/city/Oñati \
-H 'Content-Type: application/json' \
-d '{"city_name":"Oñati_Basque","country_name":"ES"}'
📌 PUT reemplaza el objeto completo.
📌 PATCH solo actualiza algunos campos.
🗑️ Delete (DELETE)
- 👉 Borra un registro (ej. Oñati_Basque):
curl -X DELETE http://<IP>:<PORT>/api.php/city/Oñati_Basque
✔️ Después, un GET devolverá [] → confirmación de borrado.
🛡️ Autenticación
- 🔑 Muchas APIs limitan lo que puedes hacer → requieren cookies 🍪 o tokens 🔒 (ej. JWT).
🚫 Sin permisos → errores típicos:
-
❌ 401 Unauthorized
-
🚷 403 Forbidden
⚙️ Tips útiles
-
📜 Ver qué métodos soporta:
curl -i -X OPTIONS http://<IP>:<PORT>/api.php/city/ -
🌐 Si hay espacios en nombres → usar
%20(ej.New%20York). -
📊 Códigos HTTP comunes:
-
✅ 200 OK → Éxito
-
🆕 201 Created → Recurso creado
-
🗑️ 204 No Content → Borrado exitoso
-
❌ 404 Not Found → No existe
-
🚫 405 Method Not Allowed → Método no permitido
-