Validação de entrada
Quando você define um schemainput, cada requisição é validada antes de executar o handler. Se a validação falhar, o handler não é executado e um 400 é retornado:
Exemplo com schema completo
index.ts
Tipos suportados
Você pode usar qualquer tipo Zod dentro dez.object():
Coerção em requisições GET
Para requisições GET, os parâmetros de query são strings. Usez.coerce para converter tipos automaticamente:
index.ts
Anotações .describe()
Use .describe() em cada campo para documentar os parâmetros. Essas descrições aparecem automaticamente no schema MCP, ajudando os agentes de IA a entender como usar sua função:
Validação de saída
Quando você define um schemaoutput, o valor retornado pelo handler é validado após a execução. Se não corresponder:
- Um aviso é registrado no log
- A resposta é enviada normalmente com status
200
A validação de saída nunca bloqueia a resposta. É uma ferramenta de desenvolvimento para detectar inconsistências.
{ name: "Maria", balance: "150" } (balance como string), você verá um aviso nos logs, mas o cliente recebe a resposta sem alterações.
Formato de erros de validação
Cada erro no arraydetails contém:
| Campo | Tipo | Descrição |
|---|---|---|
path | string[] | Caminho até o campo com o erro, ex.: ["email"] ou ["address", "city"] |
message | string | Mensagem de erro legível por humanos |
code | string | Código de erro Zod (ex.: invalid_string, too_small, invalid_enum_value) |