Validate request data using schemas or validation libraries. Handle validation errors. Return appropriate error responses. Implement validation strategies.
Implement security best practices. Handle XSS/CSRF protection. Support security headers. Implement security strategies.
Handle WebSocket connections in API routes. Manage socket state. Support real-time communication. Implement WebSocket strategies.
API Routes are serverless endpoints built into Next.js. Created in pages/api directory (Pages Router) or app/api directory (App Router). Handle HTTP requests and provide backend functionality.
Access request body using await request.json() or similar methods. Validate request data. Process POST data. Return appropriate response.
Return appropriate status codes and error messages. Use try-catch blocks. Implement error handling middleware. Support error logging.
Process multipart/form-data using appropriate middleware. Handle file storage. Validate file types and sizes. Implement upload progress.
Implement rate limiting middleware. Track request counts. Set rate limits. Handle limit exceeded responses. Support different limit strategies.
Implement authentication middleware. Verify tokens or credentials. Handle protected routes. Support different auth strategies.
Implement version control in API routes. Handle backwards compatibility. Support multiple versions. Implement versioning strategies.
Generate API documentation. Implement OpenAPI/Swagger. Support documentation updates. Implement documentation strategies.
Track API performance and usage. Handle monitoring integration. Support analytics. Implement monitoring strategies.
Implement stream handling for large responses. Handle chunked transfer. Support progressive loading. Implement streaming strategies.
Implement transaction management in API routes. Handle rollbacks. Support nested transactions. Implement transaction strategies.
Create comprehensive API tests. Handle integration testing. Support unit testing. Implement test strategies. Manage test coverage.
Track API usage patterns. Handle analytics integration. Support custom metrics. Implement analytics strategies.
Implement deployment strategies for API routes. Handle environment configuration. Support scaling solutions. Implement deployment patterns.
Create a file in app/api directory that exports default async function. Handle request methods (GET, POST, etc.). Return Response object. Example: export async function GET() { return Response.json({ data: 'hello' }) }
Middleware processes requests before reaching route handlers. Handle authentication, logging, CORS. Support middleware chains. Implement custom middleware.
Cache API responses. Handle cache invalidation. Set cache headers. Implement caching strategies. Support different cache stores.
Log API requests and responses. Track performance metrics. Handle error logging. Implement logging strategies. Support different log formats.
Create custom error classes. Handle different error types. Support error reporting. Implement error handling strategies. Manage error states.
Integrate GraphQL server with API routes. Handle schema definition. Support resolvers. Implement GraphQL middleware.
Export functions named after HTTP methods (GET, POST, PUT, DELETE). Or use conditional logic in Pages Router. Support method-specific logic. Handle unsupported methods.
Access query params through request.nextUrl.searchParams in App Router or req.query in Pages Router. Parse and validate parameters. Handle missing parameters.
Use square brackets for dynamic segments [param]. Access parameters through route object. Support multiple dynamic segments. Handle parameter validation.
Configure CORS headers using middleware or within route handlers. Set Access-Control-Allow-Origin and other headers. Handle preflight requests.
Enable response compression middleware. Handle different compression types. Set appropriate headers. Implement compression strategies.