Obtener plantilla
cookiecutter gh:agconti/cookiecutter-django-rest
Estructura de archivos creada
{{cookiecutter.github_repository_name}}/
├── .travis.yml # integración continua
├── Dockerfile
├── docker-compose.yml
├── README.md
├── manage.py
├── requirements.txt
├── docs/
│ ├── index.md
│ └── api/
│ ├── users.md
│ └── authentication.md
├── {{cookiecutter.app_name}}/
│ ├── __init__.py
│ ├── config/
│ │ ├── __init__.py
│ │ ├── common.py
│ │ ├── local.py
│ │ └── production.py
│ ├── users/
│ │ ├── __init__.py
│ │ ├── models.py
│ │ ├── serializers.py
│ │ ├── test/
│ │ │ └── test_views.py
│ │ └── views.py
│ ├── urls.py
│ └── wsgi.py
├── static/
├── media/
└── ... (otros archivos de configuración y soporte)
Ejemplo de Uso. Autenticación de Usuarios mediante JWT
Usar paquete JWT
pip install djangorestframework-simplejwt
Agregar la autenticación JWT en la canfiguración
// filepath: {root}/config/common.py
# ...existing code...
REST_FRAMEWORK = {
# ...otras configuraciones...
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
# 'rest_framework.authentication.TokenAuthentication', # Opcional: puedes quitar esto si solo usarás JWT
)
}
# ...existing code...
Agregar las rutas de JWT a las URLs
// filepath: {root}/{app_name}/urls.py
from rest_framework_simplejwt.views import (
TokenObtainPairView,
TokenRefreshView,
)
# ...existing code...
urlpatterns = [
# ...existing code...
path('api/v1/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/v1/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
# ...existing code...
]
Considerar remover tambien las rutas relacionadas al endpoint de autenticación antiguo.