rest-api-django — скилл для Claude Code: правила Django REST API
Набор правил для ИИ-агента, который пишет Django REST API: структура проекта, сериализаторы, JWT-аутентификация, борьба с N+1.
npx skills add Mindrally/skills --skill rest-api-django -a claude-codeЧто делает rest-api-django
Скилл задаёт агенту рамки при работе с Django REST Framework. Внутри — рекомендации по структуре приложения (models.py, managers.py, signals.py, tasks.py) и по API (api/v1/ с urls.py, serializers.py, views.py, permissions.py, filters.py). Агент будет держать бизнес-логику в моделях, а не во вьюхах, и использовать class-based views на базе DRF.
Отдельные блоки посвящены производительности и безопасности. Для запросов советуется select_related() и prefetch_related(), чтобы не ловить N+1, индексы на часто фильтруемых полях и transaction.atomic() для критичных операций. Аутентификация строится на djangorestframework_simplejwt, права выдаются по endpoint'ам, для сессионной аутентификации нужна CSRF-защита.
Ошибки приводятся к единому виду: флаг success, message, словарь errors по полям и error_code. Внутренние ошибки клиенту не отдаются. Учтите: скилл опирается на djangorestframework_simplejwt, так что в проекте без JWT часть рекомендаций придётся отбросить.
Какие задачи решает
- разложить Django-проект по приложениям и папкам API
- убрать N+1 запросы через eager loading
- настроить JWT-аутентификацию и права по endpoint'ам
- привести ответы об ошибках к одному формату
- добавить пагинацию и кэш в list-эндпоинты
Примеры запросов агенту
- Спроектируй структуру api/v1 для нового Django-приложения
- Проверь мои вьюхи на N+1 и предложи select_related
- Сделай единый формат ошибок с error_code для DRF
Как установить rest-api-django
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill rest-api-django -a claude-code2Вручную: положить файлы
~/.claude/skills/rest-api-django/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/rest-api-django/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill rest-api-django -a codex2Вручную: положить файлы
.agents/skills/rest-api-django/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill rest-api-django -a cursor2Вручную: положить файлы
.cursor/skills/rest-api-django/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills rest-api-django2Вручную: положить файлы
.github/skills/rest-api-django/SKILL.md1Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill rest-api-django -a gemini-cli2Командой платформы
gemini skills install https://github.com/Mindrally/skills --path rest-api-djangoВручную: положить файлы
.devin/skills/rest-api-django/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Mindrally/skills --skill rest-api-django -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора168
Похожие
Рядом в теме «Бэкенд и API»
Всё по теме «Бэкенд и API» →Вопросы о rest-api-django
Как установить rest-api-django в Claude?
Выполните npx skills add Mindrally/skills --skill rest-api-django -a claude-code. Файл скилла окажется по пути ~/.claude/skills/rest-api-django/SKILL.md.
Что делает rest-api-django?
Даёт агенту правила разработки Django REST API: структура проекта, вьюхи, модели, сериализаторы, аутентификация, производительность и обработка ошибок.
Какие зависимости нужны для работы скилла?
В рекомендациях по аутентификации используется djangorestframework_simplejwt, для кэша — Redis или Memcached. Если JWT в проекте нет, эти советы не подойдут.
Исходный текст
SKILL.md · Apache-2.0
---
name: rest-api-django
description: Comprehensive guidelines for Django REST API development covering project structure, views, models, serializers, authentication, performance, and error handling.
metadata:
maintainer: Mindrally
source: https://github.com/Mindrally/skills
---
# 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
```
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()` and `prefetch_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_simplejwt` for 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
```python
{
"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
© Mindrally · Apache-2.0 · Mindrally/skills