Saltar al contenido principal

🔌 Invocar y comprobar

Objetivo principal: llamar a un modelo publicado y ver su respuesta, que es la única forma de saber que una versión responde de verdad y no solo que el inventario dice que sirve.

Las dos superficies

Ningún modelo es alcanzable desde fuera. Sus puertos no se publican: toda invocación entra por /invocaciones del plano de control, que es quien conoce la tabla de direcciones.

Invocar una versión

curl -s -X POST \
-H "Content-Type: application/json" \
-H "X-Captia-Credencial: $CAPTIA_CREDENCIAL" \
-d '{"entrada": {"temperatura_aula": 25.0}}' \
"http://127.0.0.1:8080/invocaciones?version=clima-aula-b12/1"

Respuesta:

{
"consigna": 24.0,
"encender_clima": true
}

Eso es exactamente lo que devolvió la función del alumno. La plataforma no lo envuelve ni le añade nada.

Tres cosas que conviene fijar:

ElementoDónde vaSi falta
La versiónEn la consulta, ?version=400, diciendo que falta
Los valoresDentro de un campo entrada400: un cuerpo sin entrada se rechaza a propósito
La credencialCabecera X-Captia-Credencial403, con el «qué hacer»

Un cuerpo sin el campo entrada se rechaza a propósito. Es la frontera del contrato: lo que el alumno escribe recibe un diccionario, y ese diccionario es lo que va dentro de entrada. Sin ese envoltorio no habría forma de distinguir los valores del modelo de los metadatos de la petición.

Consultar sin invocar

curl -s -H "X-Captia-Credencial: $CAPTIA_CREDENCIAL" \
http://127.0.0.1:8080/inventario
curl -s -H "X-Captia-Credencial: $CAPTIA_CREDENCIAL" \
http://127.0.0.1:8080/actividad

Y la única que no pide nada:

curl -s http://127.0.0.1:8080/salud

Qué códigos vas a ver

CódigoQué pasó
200La invocación llegó al modelo y respondió
400Falta ?version=, o el cuerpo no trae entrada
403La credencial falta o no es la vigente
404Esa versión no tiene ninguna dirección viva: no existe, o está retirada, o quedó en publicándose. El mensaje no distingue cuál de las tres, y remite a /inventario
413El envío pasa del tope, y se rechaza antes de leerlo entero
422La publicación se rechazó: el cuerpo trae la causa
502La dirección del modelo no respondió
Un 502 no deja rastro en Actividad

Si la dirección no contesta, la plataforma te devuelve el error pero no escribe asiento: no inventa un diagnóstico sobre algo que no ha podido observar. Es deliberado, y significa que Actividad no es un registro completo de intentos fallidos de invocación.

Comprobar delante de la clase

El recorrido que mejor funciona en una sesión:

  1. Proyecta la vista de clase. La fila del modelo dirá «todavía no» en la columna de la derecha.
  2. Invoca el modelo con el curl de arriba, o desde cualquier cliente HTTP.
  3. Enseña la respuesta.
  4. A los 30 segundos como mucho, la proyección se actualiza sola y esa fila pasa a «sí».

Es la demostración más corta de que el recorrido entero funciona: de la función de un alumno a un servicio que responde.

Si quieres usar un cliente gráfico

Hay una colección preparada en despliegue/captia.postman_collection.json, importable en Postman, con la cabecera de credencial ya puesta en cada petición.

No es una lista suelta de llamadas: son once peticiones numeradas que recorren el ciclo entero, y cuatro de ellas están ahí para demostrar una regla, con el resultado esperado en su propio nombre.

#Qué hacePara qué está
1SaludComprobar que responde
2Publicar un modeloEl caso normal
3Ver el inventarioConfirmar que se inventarió
4Invocar el modeloConfirmar que responde
5Publicar otra vez el mismo alumnoDemuestra que se rechaza: ya tiene una versión viva
6Otro alumno, el mismo nombreDemuestra que sí publica: el nombre no es de la clase
7Ver el registro de actividadVer los asientos que dejaron 2, 4, 5 y 6
8Invocar con el cuerpo mal formadoDemuestra el 400
9Retirar la publicaciónLa retirada por API
10El inventario tras retirarVer la autoría borrada
11Publicar tras retirarDemuestra que el identificador es nuevo: el número no vuelve

Ejecutada en orden, esa colección es la forma más rápida de ver el comportamiento completo sin tocar la pantalla — y las parejas 5/6 y 9/11 son la mejor explicación de las dos reglas que más confunden al empezar.