Accessing the request
The request object is available on theHttpContext:
Request body
Access the parsed request body:Nested data
Access nested request data using dot notation:Query strings
Access URL query parameters:Route parameters
Access dynamic route parameters:Request headers
Access request headers:Request method
Get the HTTP method:Request URL
Access URL information:Request IP address
Get the client’s IP address:Cookies
Access request cookies:File uploads
Access uploaded files (requires@adonisjs/bodyparser):
Multiple file uploads
File validation
Content negotiation
Determine the accepted response format:Request validation
Validate request data using VineJS validators:Request context
Store custom data on the request for use in middleware and handlers:Checking request properties
Ajax requests
Content type
Request origin
Extending the Request class
Add custom methods to the Request class:TypeScript support
The request object is fully typed. Use TypeScript to get autocomplete and type checking:Best practices
Always validate user input
Always validate user input
Never trust user input. Always validate request data using validators before processing:
Use only() and except() for mass assignment
Use only() and except() for mass assignment
When creating or updating records, use
only() or except() to prevent mass assignment vulnerabilities:Validate file uploads
Validate file uploads
Always validate file uploads for size and type:
Use appropriate methods
Use appropriate methods
- Use
input()for single values with defaults - Use
only()for selecting specific fields - Use
except()for excluding specific fields - Use
all()when you need everything