Recommended resources
The freely available resources this lesson will direct you to.
- ⭐PROTOCOLO HTTP 🖥️ Requests y Responses con: GET, POST, PUT, PATCH y DELETE | DESARROLLO WEB 🌎www.youtube.com
- Cómo usar Postman para Testear APIs (Práctico) | #3www.youtube.com
- Generalidades del protocolo HTTP - HTTP | MDNdeveloper.mozilla.org
- Trabajando con JSON - Aprende desarrollo web | MDNdeveloper.mozilla.org
¡Hola! En la lección anterior seguiste los datos de un asistente de devoluciones desde la consulta de una persona hasta el sistema de pedidos, el modelo y los registros. Ahora vamos a acercarnos a una de esas conexiones: una petición a una API y la respuesta que recibe.
El objetivo no es programar todavía. Es poder mirar un intercambio sencillo y explicar qué operación se solicitó, qué datos viajaron, qué contestó el servicio y qué no se puede concluir solo con esa respuesta. Esa lectura te ayudará a conversar con equipos técnicos y, en la próxima lección, a entender el script que enviará una petición a una API de IA.
Una conversación con estructura: HTTP
Una API permite que una aplicación solicite a otra una operación o unos datos mediante una interfaz definida. En nuestro ejemplo, la aplicación del asistente podría consultar el estado de un pedido a través de la API del sistema de pedidos. La aplicación que consulta es el cliente; el servicio que recibe la petición y contesta es el servidor.
Cuando esa API utiliza HTTP, el intercambio tiene dos mensajes distintos. La petición indica qué se quiere hacer y a qué recurso se dirige. La respuesta informa del resultado de atender esa petición y, cuando corresponde, devuelve datos. El siguiente vídeo presenta sus piezas principales; no necesitas memorizar todos los métodos que menciona.
⭐PROTOCOLO HTTP 🖥️ Requests y Responses con: GET, POST, PUT, PATCH y DELETE | DESARROLLO WEB 🌎
En «Protocolo HTTP: Requests y Responses», de TodoCode, observa la estructura de ambos mensajes antes de aplicarla al asistente de devoluciones.
Mira la petición para localizar método, URL, cabeceras y cuerpo; después la respuesta para identificar el código de estado. Termina con GET y POST. Interpreta POST como «enviar datos para que el servidor los procese»: no implica necesariamente guardarlos.
Una precisión útil al ver el vídeo: las cabeceras describen el mensaje —por ejemplo, el formato de los datos o la credencial utilizada—, mientras que el cuerpo transporta el contenido de una petición o respuesta cuando lo hay. También puede haber datos en la URL, como veremos enseguida.
Si quieres ver esas piezas expresadas en una referencia técnica breve, lee los apartados indicados de MDN. La representación que muestran se parece a HTTP/1.1; aunque otras versiones transmitan los mensajes de otra forma, aquí nos interesan los mismos conceptos: método, destino, cabeceras, cuerpo y estado.
Generalidades del protocolo HTTP - HTTP | MDN
Lee la explicación de MDN para distinguir los campos de una petición de los de una respuesta sin confundirlos con los datos de negocio.
En «Mensajes HTTP», entra en las subsecciones «Peticiones» y «Respuestas». En «Peticiones», lee los campos desde la frase sobre los dos tipos de mensajes hasta la viñeta del cuerpo. En «Respuestas», empieza en «Un ejemplo de repuesta» y lee su estructura hasta la última viñeta. Fíjate en que el código de estado pertenece a la respuesta, no a la petición.
Lee una petición como una instrucción concreta
Imagina que la aplicación del asistente necesita consultar únicamente el estado del pedido ficticio 4827. Una representación legible de su petición podría ser:
GET /pedidos/4827?campos=estado HTTP/1.1
Host: api.ejemplo.test
Accept: application/json
Authorization: Bearer [credencial omitida]
La dirección y la credencial son ilustrativas; no corresponden a un servicio al que debas conectarte. Podemos leer el mensaje por partes:
GETes el método. Expresa una solicitud de consulta. No indica, por sí solo, que la persona tenga permiso para consultar cualquier pedido./pedidos/4827es la ruta del recurso. Identifica qué pedido se solicita dentro del servicio indicado porHost.?campos=estadoes un parámetro de consulta de la URL. Pide el campoestado, siempre que esta API admita ese parámetro. La documentación de cada API determina qué parámetros existen y qué significan.Accept: application/jsones una cabecera. Indica que el cliente acepta una respuesta en formato JSON.Authorizationes otra cabecera. Aquí representa una credencial omitida deliberadamente. Su presencia no demuestra que la autorización esté bien configurada: el servidor debe comprobarla.
Esta petición no muestra un cuerpo. Es habitual en una consulta GET sencilla. Conviene distinguirlo de «no enviar datos»: el identificador 4827 y el parámetro campos ya viajan en la URL. Por eso no se deben colocar secretos o datos personales innecesarios en parámetros de consulta; las URL pueden quedar registradas o compartirse. Usar HTTPS protege la comunicación en tránsito, pero no elimina la necesidad de controlar accesos y registros.
En cambio, para pedir a una API de IA que genere un borrador, una aplicación podría enviar información en el cuerpo de una petición POST:
POST /borradores-devolucion HTTP/1.1
Host: api.ejemplo.test
Content-Type: application/json
Accept: application/json
{"pedido_id":"4827","instruccion":"Prepara un borrador; no lo envies"}
Aquí Content-Type: application/json describe el formato del cuerpo enviado. POST indica que se remiten datos para una operación; según la API, esa operación podría generar un resultado sin guardarlo o crear un recurso persistente. Ni el método ni el nombre de la ruta bastan para conocer el comportamiento real: hay que contrastarlo con la documentación y la configuración del servicio. Este segundo ejemplo es solo una vista previa; en esta lección nos concentraremos en interpretar el intercambio.
Mira qué muestra —y qué no muestra— un cliente de API
Herramientas como Postman permiten componer una petición y observar la respuesta sin tener que escribir un programa. En el siguiente vídeo, céntrate en leer la pantalla, no en instalar la herramienta ni en reproducir el ejemplo del autor.
Cómo usar Postman para Testear APIs (Práctico) | #3
En «Cómo usar Postman para Testear APIs (Práctico)», de Testing Para Todos, verás dónde aparecen el método y la URL, y cómo se inspeccionan el estado y los datos devueltos.
Observa la petición GET para situar método y dirección. Sigue con la respuesta: localiza 200 OK, el cuerpo JSON y el ejemplo de 404 Not Found. En la comprobación, fíjate en por qué también hay que cotejar los campos devueltos con lo que se esperaba de la API.
Esta otra captura de Postman permite reconocer las mismas zonas de un vistazo:

La zona superior es la petición; la inferior, la respuesta. La pestaña Params organiza los parámetros que también aparecen tras el signo ? en la URL. El 200 OK visible debajo no es un parámetro: es el estado HTTP de la respuesta. Y el texto con llaves bajo JSON es su cuerpo, no la petición que se envió.
En la captura aparecen expresiones como {{spacecraftId}} y {{type}} tanto arriba como en los argumentos mostrados abajo. Son marcadores visibles en este ejemplo: no presupongas que representan valores reales sustituidos. Del mismo modo, ver 200 OK no prueba que un servicio haya devuelto los datos de negocio esperados. Para afirmarlo habría que examinar sus campos y compararlos con lo solicitado.
Lee el resultado: estado HTTP y cuerpo JSON
Volvamos a la consulta ficticia del pedido. Una respuesta posible sería:
HTTP/1.1 200 OK
Content-Type: application/json
{
"pedido_id": "4827",
"estado": "entregado",
"articulos": 2,
"devolucion": {
"solicitada": false,
"motivo": null
},
"avisos": []
}
La primera línea indica el código de estado HTTP: 200 OK significa que la petición se atendió correctamente desde el punto de vista HTTP. La cabecera Content-Type anuncia que el cuerpo tiene formato JSON. Tras la línea en blanco empieza ese cuerpo: los datos de la respuesta.
JSON es un formato de texto para representar datos estructurados. Puede incluir objetos con pares clave–valor, listas, textos, números, valores booleanos y null. La lectura de MDN ofrece un ejemplo más amplio y las reglas de sintaxis necesarias para reconocerlo.
Trabajando con JSON - Aprende desarrollo web | MDN
Lee «Trabajando con JSON», de MDN, para reconocer la estructura de los datos que puede devolver una API. No necesitas estudiar la parte de programación en JavaScript.
En «¿Qué es realmente JSON?», lee la explicación inicial hasta la idea de convertir el texto para acceder a sus datos. Después, en «Estructura del JSON», lee los tipos de datos y observa el ejemplo que empieza con squadName: basta con reconocer que un objeto puede contener otros objetos y arreglos. Por último, en «Otras notas», lee las reglas de sintaxis hasta la observación sobre las comas y los dos puntos.
Ahora ya puedes recorrer nuestro JSON sin tratarlo como un bloque opaco. Las llaves exteriores delimitan un objeto. Cada clave, como "estado", nombra un dato; el valor situado tras los dos puntos indica su contenido. Las comillas importan:
"4827"es texto, aunque contenga cifras. En este caso funciona como identificador, no como cantidad con la que calcular."entregado"también es texto;2, en"articulos": 2, es un número.falsees un booleano: aquí dice que no consta una devolución solicitada. No es el texto"false".nullindica ausencia de valor paramotivo; no equivale necesariamente a la palabra «ninguno» ni explica por qué falta.[]es una lista vacía de avisos."devolucion"contiene otro objeto. Para localizar su datosolicitada, primero entras endevoluciony después lees esa clave.
JSON exige comillas dobles en los nombres de las claves y en los valores de texto. Sin embargo, JSON no define el significado de negocio de cada campo. Que el pedido esté "entregado" no demuestra que sea elegible para devolución; tampoco 200 OK certifica que su estado sea correcto o esté actualizado. Esas conclusiones requieren reglas de negocio, documentación y, cuando proceda, verificación con otras fuentes.
Interpreta los fallos sin adivinar la causa
No todas las respuestas son 200 OK. Una lectura inicial de códigos frecuentes ayuda a decidir qué preguntar cuando una integración falla:
| Estado | Lectura inicial | Lo que conviene comprobar |
|---|---|---|
200 OK |
La petición se atendió. | ¿El cuerpo contiene los campos y valores esperados? |
400 Bad Request |
El servidor considera inválida la petición. | ¿Falta un campo o tiene un formato incorrecto? |
401 Unauthorized |
Falta una autenticación válida. | ¿Se proporcionó una credencial válida? |
403 Forbidden |
La operación no está permitida. | ¿Tiene ese usuario o servicio permiso para ese recurso? |
404 Not Found |
No se encontró el recurso solicitado. | ¿Son correctas la ruta y el identificador? Según la API, ¿podría tratarse también de un recurso que no se revela a este usuario? |
500 Internal Server Error |
El servidor no pudo completar la operación por un fallo interno. | ¿Hay información de diagnóstico y un responsable técnico que pueda revisarla? |
Un código orienta, pero no siempre identifica por sí solo la causa. Además, la respuesta de error puede traer un cuerpo JSON explicativo, otro formato o ningún cuerpo. Si durante un piloto el asistente muestra «pedido inexistente» ante cualquier 404, podría estar afirmando demasiado: el problema quizá sea una ruta mal escrita o una decisión de acceso del servicio.
Para tu función de adopción, la lectura completa combina cuatro preguntas: qué se pidió, qué estado devolvió HTTP, qué datos llegaron realmente y si esos datos permiten realizar la tarea prevista. Así podrás describir una incidencia con precisión: «la consulta del estado recibe 200 OK, pero falta el campo estado» es mucho más útil que «la IA no funciona».
Cierre
Una petición HTTP reúne un método, un destino, posibles cabeceras y, en algunos casos, un cuerpo. La respuesta aporta un código de estado, cabeceras y, cuando corresponde, un cuerpo. Si ese cuerpo es JSON, puedes leer sus claves, valores y estructuras anidadas sin confundir un dato devuelto con una garantía de que sea correcto.
La distinción decisiva es esta: éxito de la comunicación, contenido recibido y valor para la tarea son tres comprobaciones diferentes. En la próxima lección utilizarás esta lectura para ejecutar y adaptar un script guiado en Python que envíe una petición a una API de IA.