Validación de entrada
Cuando defines un esquemainput, cada petición se valida antes de ejecutar el handler. Si la validación falla, el handler no se ejecuta y se retorna un 400:
Ejemplo con esquema completo
index.ts
Tipos soportados
Puedes usar cualquier tipo de Zod dentro dez.object():
Coerción en peticiones GET
Para peticiones GET, los query parameters son strings. Usaz.coerce para convertir tipos automáticamente:
index.ts
Anotaciones .describe()
Usa .describe() en cada campo para documentar los parámetros. Estas descripciones aparecen automáticamente en el esquema MCP, lo que ayuda a los agentes IA a entender cómo usar tu función:
Validación de salida
Cuando defines un esquemaoutput, el valor retornado por el handler se valida después de la ejecución. Si no coincide:
- Se registra una advertencia en los logs
- La respuesta se envía normalmente con status
200
La validación de output nunca bloquea la respuesta. Es una herramienta de desarrollo para detectar inconsistencias.
{ nombre: "María", saldo: "150" } (saldo como string), verás una advertencia en los logs pero el cliente recibe la respuesta sin cambios.
Formato de errores de validación
Cada error en el arraydetails contiene: