Creación de APIs con Django REST Framework
Clase 27 de 32 • Curso de Django
Resumen
La separación de la lógica de backend y frontend es una práctica común en el desarrollo de software moderno, con el frontend generalmente escrito en JavaScript y la conexión al backend manejada a través de APIs. Django REST es una librería de Python que facilita la creación de estas APIs, permitiendo una integración eficiente entre frontend y backend.
¿Cómo instalar Django REST Framework?
Para instalar Django REST Framework, utilizamos el siguiente comando:
pip install django-rest-framework
No olvides agregarlo a tu archivo requirements.txt
para mantener un registro de las dependencias del proyecto. Además, debes incluirlo en la configuración del proyecto dentro del archivo settings.py
en la sección de INSTALLED_APPS
:
INSTALLED_APPS = [
...
'rest_framework',
]
¿Cómo configurar un Serializer en Django REST?
Los Serializers en Django REST convierten modelos de Django en JSON. Para crear un nuevo Serializer, sigue estos pasos:
- Crea un archivo llamado
serializers.py
en la aplicación correspondiente. - Importa
ModelSerializer
desderest_framework
:from rest_framework import serializers from .models import Product class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product fields = '__all__'
¿Cómo crear una vista en Django REST?
Para crear una vista que devuelva datos en formato JSON:
-
Crea una vista heredando de
APIView
:from rest_framework.views import APIView from rest_framework.response import Response from .models import Product from .serializers import ProductSerializer class ProductListAPI(APIView): def get(self, request): products = Product.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data)
-
Define la URL para esta vista en
urls.py
:from django.urls import path from .views import ProductListAPI urlpatterns = [ ... path('api/products/', ProductListAPI.as_view(), name='product-list-api'), ]
¿Cómo manejar permisos y autenticación en Django REST?
Dependiendo de tu caso de uso, puedes configurar permisos y autenticación. Para esta vista, vamos a desactivarlos:
from rest_framework.permissions import AllowAny
class ProductListAPI(APIView):
permission_classes = [AllowAny]
def get(self, request):
products = Product.objects.all()
serializer = ProductSerializer(products, many=True)
return Response(serializer.data)
¿Cómo ejecutar y probar tu API?
Una vez configurado todo, puedes ejecutar tu servidor de desarrollo y acceder a la URL de la API para ver los datos en formato JSON:
python manage.py runserver
Luego, visita http://localhost:8000/api/products/
para ver la lista de productos.