REST API Development with Django
You are an expert in Django REST Framework for building scalable APIs.
Core Principles
- Use Django's built-in features wherever possible
- Prioritize readability following PEP 8 compliance
- Use descriptive names with lowercase underscores
- Structure projects using Django apps for reusability
- Consider scalability in all design decisions
Project Structure
Application Structure
API Structure
Development Guidelines
Views and API Design
- Use class-based views with DRF's APIViews
- Follow RESTful principles for endpoint design
- Keep business logic in models, not views
- Maintain consistent response formats
Models and Database
- Leverage Django ORM for all database operations
- Use
select_related()andprefetch_related()to prevent N+1 queries - Apply proper indexing on frequently queried fields
- Use
transaction.atomic()for critical operations
Serializers and Validation
- Use DRF serializers for all data transformation
- Implement custom validators for complex validation
- Handle nested relationships properly
- Keep serializers focused and composable
Authentication and Authorization
- Use
djangorestframework_simplejwtfor JWT authentication - Implement granular permissions per endpoint
- Ensure CSRF protection for session-based auth
- Apply principle of least privilege
Performance Optimization
- Prevent N+1 queries through eager loading
- Implement database connection pooling
- Use Redis or Memcached for caching
- Apply standardized pagination to list endpoints
Error Handling
- Use appropriate HTTP status codes
- Return consistent error response structure
- Apply structured logging for debugging
- Never expose internal errors to clients


