Volver a recursos del Bloque 5

CÁPSULA DE BASE

HTTP y JSON

Cómo conversa una interfaz con tu API y cómo reconocer éxito, error y contrato.

Objetivo técnico

Al terminar podrás enviar una petición JSON a una API, leer su status y distinguir un error de transporte de un error del contrato. HTTP es el canal; JSON es una representación de datos que viaja en el body.

Antes de empezar

Necesitas una API local del Bloque 4 o cualquier endpoint de práctica que acepte POST /api/assist. Confirma su URL y puerto. Nunca pruebes con datos sensibles.

Paso a paso

  1. Envía una petición con curl:
curl -i -X POST http://localhost:3000/api/assist \
  -H 'content-type: application/json' \
  -H 'authorization: Bearer clave-local' \
  -d '{"message":"Resume la política de devolución"}'
  1. Lee la primera línea: contiene el status, por ejemplo HTTP/1.1 200 OK.
  2. Identifica headers y body. content-type: application/json describe cómo interpretar la respuesta.
  3. Repite sin message: el contrato debería responder 400, no llamar al modelo.
  4. Repite sin autorización: debería responder 401.
  5. Desde TypeScript, recuerda que fetch no lanza excepción solo porque el servidor devuelve 400; inspecciona response.ok y response.status.

Verificación

Guarda una respuesta exitosa y una inválida. Puedes señalar método, path, headers, body y status en ambas, y explicar por qué el error pertenece al cliente o al servidor.

Errores frecuentes

  • Enviar JSON sin content-type: el servidor puede no parsearlo.
  • Confundir 401 con 500: credenciales ausentes no son un fallo interno.
  • Llamar response.json() dos veces: el body se consume una vez.

Práctica

Cambia message por un número y predice el status antes de ejecutar. Compara tu predicción con la respuesta real y corrige el schema si acepta un dato inválido.

Puente al RAG

El Bloque 5 conserva POST /api/assist y amplía la respuesta con citas. Comprender HTTP evita mezclar el contrato público con detalles internos del vector store.

Fuente primaria

Overview of HTTP — MDN Web Docs