En la mayoría de las APIs modernas, el formato de intercambio de datos por defecto es JSON.
👉 Esto garantiza interoperabilidad: cualquier lenguaje de programación puede generar o leer JSON fácilmente.
Cuando enviamos datos a una API (por ejemplo en POST
, PUT
o PATCH
), los datos van en el cuerpo de la petición (body) en formato JSON.
Reglas básicas
Content-Type: application/json
para indicar que estamos enviando JSON. Ver especificación de HTTP.Petición HTTP
POST /usuarios HTTP/1.1
Host: api.tienda.com
Content-Type: application/json
Accept: application/json
{
"nombre": "Carlos",
"email": "carlos@ejemplo.com",
"edad": 28
}
Respuesta
201 Created
{
"id": 101,
"nombre": "Carlos",
"email": "carlos@ejemplo.com",
"edad": 28
}
👉 El servidor devuelve un nuevo objeto con id
generado automáticamente.
PUT /productos/10 HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"nombre": "Notebook Gamer",
"precio": 2500.00,
"stock": true
}
👉 El servidor reemplaza todos los campos del producto con id = 10
.
PATCH /productos/10 HTTP/1.1
Content-Type: application/json
Accept: application/json
{
"precio": 2200.00
}
👉 Solo se modifica el precio; el resto de atributos se mantiene igual.
Cuando una API REST responde, casi siempre lo hace en JSON.
GET /productos/10 HTTP/1.1
Accept: application/json
Respuesta
{
"id": 10,
"nombre": "Notebook Gamer",
"precio": 2200.00,
"stock": true
}
👉 El cliente ahora puede usar estos datos en su aplicación.
GET /usuarios HTTP/1.1
Accept: application/json
Respuesta
[
{ "id": 1, "nombre": "Ana", "email": "ana@ejemplo.com" },
{ "id": 2, "nombre": "Luis", "email": "luis@ejemplo.com" }
]
👉 El servidor devuelve un arreglo de objetos JSON.
POST
o PUT
.Ejemplo
{
"titulo": "Nuevo curso",
"precio": 1200
}
En Headers, Postman agrega automáticamente: Content-Type: application/json
.
Crear un recurso con POST
curl -X POST https://api.tienda.com/productos ^
-H "Content-Type: application/json" ^
-d "{ \"nombre\": \"Tablet\", \"precio\": 900.50 }"
Obtener un recurso con GET
curl -X GET https://api.tienda.com/productos/1 ^
-H "Accept: application/json"
Olvidar el Content-Type
El servidor no sabe que los datos son JSON.
Formato inválido
Comas de más, comillas simples en vez de dobles, etc.
Ejemplo incorrecto
{ 'nombre': 'Ana' }
Ejemplo correcto
{ "nombre": "Ana" }
Confundir Path Parameters con JSON
Incorrecto: enviar id
en el body cuando debería estar en la ruta (/usuarios/5
).
Falta de Accept en la petición
El cliente pide JSON pero no lo indica, y el servidor puede responder en otro formato.
Content-Type: application/json
cuando enviamos datos en el body.Accept: application/json
para asegurarnos de recibir datos en JSON.{ "error": "El campo 'email' es obligatorio" }
El JSON es el formato universal para enviar y recibir datos en APIs REST.
Content-Type: application/json
y un body bien formado.Accept: application/json
para obtener la respuesta en JSON.El correcto manejo de JSON garantiza que la API sea comprensible, segura y confiable.
👉 En resumen: JSON es el idioma que habla REST.