Overview
Hono provides a powerful and flexible validation system that allows you to validate incoming request data from various sources including JSON bodies, form data, query parameters, headers, and cookies.Basic Validation
Thevalidator middleware extracts data from different parts of the request and validates it using a custom validation function.
Validation Targets
You can validate data from these sources:json- JSON request bodyform- Form data (multipart or URL-encoded)query- Query parametersparam- Path parametersheader- Request headerscookie- Cookies
Basic Example
Query Parameter Validation
Validate URL query parameters:Form Data Validation
Validate form data submissions:Multiple Validators
Chain multiple validators to validate different parts of the request:Using Zod
For more complex validation, use Zod with Hono’s validator:Custom Error Messages
Return custom error responses:Validation Utilities
The validator automatically handles:- Content-Type detection for JSON (
application/json) - Form data parsing (both
multipart/form-dataandapplication/x-www-form-urlencoded) - Array handling in form data (fields ending with
[]) - Type safety with TypeScript
Best Practices
Always validate user input
Always validate user input
Never trust data from clients. Always validate and sanitize input before processing.
Use TypeScript for type safety
Use TypeScript for type safety
Leverage TypeScript’s type system along with validation to catch errors early.
Return meaningful error messages
Return meaningful error messages
Provide clear, actionable error messages to help API consumers fix issues.
Consider using validation libraries
Consider using validation libraries
For complex validation logic, use libraries like Zod, Valibot, or TypeBox with Hono validators.
Related
- Error Handling - Learn how to handle validation errors
- TypeScript - Type-safe validation with TypeScript
- Third-party Validators - Integration with popular validation libraries