Crear una Restful Api (CRUD) empleando Django Rest Framework
Se explica como podemos crear una Api Rest automáticada, tipo CRUD empleando Django Rest Framework.
Una Rest Api es un componente fundamental en cualquier aplicación hoy en día que nos ofrece un mecanismo sencillo, organizado y personalizable para compartir datos o funcionalidades mediante otras aplicaciones; inclusive nos permite agregar capas de seguridad con relativa facilidad si empleas un framework, paquete o algo por el estilo; en Django, empleando Django Rest Framework no puede ser la excepción y nos permite crear mediante este paquete para Django RestApis muy personalizadas mediante clases o métodos que podemos personalizar.
Así que, nuevamente te repito, existen muchas formas de crear recursos Rest mediante Django Rest Framework (DRF) y en esta entrada vamos a ver el enfoque más sencillo, generado y directo para aprender a dar los primeros pasos con DRF.
Componentes para crear una Api Rest en DRF
En DRF existen 3 componentes principales para crear cualquier tipo de recurso Rest:
- Las clases de serialización, que nos permite indicar el conjunto de datos con los cuales vamos a trabajar.
- Las clases o métodos con los recursos Rest, la cual emplean los serializadores para hacer el mapeo a las respuestas de los recursos Rest que creamos en este punto.
- El ruteo, como cualquier componente http en Django, tenemos que crear un componente de ruta.
Y todo esto nosotros lo podemos administrar mediante clases, propiedades y funciones en DRF.
Definiendo el modelo de ejemplo
Vamos a trabajar con un modelo sencillo de categorías como el siguiente:
from django.db import models class Category(models.Model):
title = models.CharField(max_length=255)
url_clean = models.CharField(max_length=255)
def __str__(self):
return self.title
Creando la Restful Api
Como comentamos inicialmente, vamos a crear una Api Rest de tipo CRUD, o Api Restful, por lo tanto vamos a emplear el esquema correspondiente que nos permite crear este tipo de clases empleando los 3 componentes explicados anteriormente:
Views para definir los recursos Rest
Si tu intención es crear una Api Rest de tipo CRUD, ya en DRF existe una clase que puedes heredar y de manera automática se va a crear gracias a los dos atributos que definimos, el queryset, para definir el pull de datos, y el serializer_class para definir la clase serializadora; todo esto lo haremos en un archivo llamado viewsets.py:
from rest_framework import viewsets
from .models import Category
from .serializers import CategorySerializer
class CategoryViewSet(viewsets.ModelViewSet):
queryset = Category.objects.all()
serializer_class = CategorySerializer
La primera clase que tenemos que definir sería el de serializers.py
que nos permite definir la serialización de nuestras clases, esto es útil para indicar con qué campos vamos a trabajar, por ejemplo, todos:
from rest_framework import serializers
from .models import Category
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = '__all__'
Con nuestros dos recursos creados, lo siguiente que necesitamos sería el manejo de las rutas; para eso:
from rest_framework import routers
from .viewsets import CategoryViewset
route = routers.SimpleRouter()
route.register('category',CategoryViewset)
urlpatterns = route.urls
Luego, en nuestro archivo principal para las rutas:
path('api/', include('restful.urls')),
Donde restful es el nombre de la aplicación que contiene las clases anteriores.
- Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter