About rest-api-django
rest-api-django is a guidance skill for developers building REST APIs with Django REST Framework. It covers API structure, data handling, authentication, performance, and consistent error responses.
Key features
- 01DRF API views and REST design
- 02Reusable Django app structure
- 03ORM query and transaction practices
- 04Serializer validation guidance
- 05JWT and endpoint permissions
- 06Pagination, caching, and error handling
Use cases
- 01Planning a Django REST API structure
- 02Reviewing serializers and endpoint permissions
- 03Reducing N+1 database queries
- 04Standardizing API error responses
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ mindrally/ skills --skill rest-api-djangoAfter installing, type/rest-api-djangoin Claude Code to confirm it loaded.
Details
From the project READMEREST 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
app_name/
migrations/ # Database migrations
admin.py # Admin configuration
models.py # Data models
managers.py # Custom model managers
signals.py # Django signals
tasks.py # Celery tasks
API Structure
api/
v1/
urls.py # URL routing
serializers.py # DRF serializers
views.py # API views
permissions.py # Custom permissions
filters.py # Query filters
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
{
"success": False,
"message": "Validation failed",
"errors": {
"field_name": ["Error message"]
},
"error_code": "VALIDATION_ERROR"
}
- Use appropriate HTTP status codes
- Return consistent error response structure
- Apply structured logging for debugging
- Never expose internal errors to clients
Comments
Markdown supported