1. Instalar Django y Django REST Framework
Antes de comenzar a crear nuestra API REST, necesitamos asegurarnos de tener Django y Django REST Framework instalados en nuestro entorno de desarrollo. Django es un framework de desarrollo web de alto nivel escrito en Python, mientras que Django REST Framework es una extensión de Django que nos permite crear fácilmente APIs RESTful.
Para instalar Django, podemos utilizar el siguiente comando en nuestra terminal:
pip install django
Para instalar Django REST Framework, podemos utilizar el siguiente comando:
pip install djangorestframework
2. Crear un nuevo proyecto de Django
Una vez que tenemos Django y Django REST Framework instalados, podemos crear un nuevo proyecto de Django utilizando el siguiente comando:
django-admin startproject myproject
Esto creará un nuevo directorio llamado «myproject» con la estructura de archivos básica de un proyecto de Django.
3. Crear una nueva aplicación dentro del proyecto
Después de crear el proyecto, necesitamos crear una nueva aplicación dentro del proyecto. Una aplicación en Django es un módulo que contiene un conjunto de funcionalidades relacionadas.
Para crear una nueva aplicación, podemos utilizar el siguiente comando:
python manage.py startapp myapp
Esto creará un nuevo directorio llamado «myapp» dentro del directorio del proyecto, con la estructura de archivos básica de una aplicación de Django.
4. Configurar la base de datos
Antes de continuar, necesitamos configurar la base de datos que utilizaremos para nuestra API. Django admite varios motores de base de datos, como SQLite, MySQL y PostgreSQL.
Para configurar la base de datos, abrimos el archivo «settings.py» en el directorio del proyecto y buscamos la sección «DATABASES». Aquí podemos configurar los detalles de conexión de nuestra base de datos, como el motor, el nombre de la base de datos, el usuario y la contraseña.
5. Crear modelos de datos
Los modelos de datos en Django son clases que representan las tablas de la base de datos. Cada atributo de la clase representa una columna en la tabla.
Para crear modelos de datos, abrimos el archivo «models.py» en el directorio de la aplicación y definimos nuestras clases de modelo. Cada clase debe heredar de la clase «models.Model» de Django.
Por ejemplo, si queremos crear un modelo de datos para representar un usuario, podemos hacerlo de la siguiente manera:
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
password = models.CharField(max_length=100)
En este ejemplo, hemos creado un modelo de datos llamado «User» con tres atributos: «name», «email» y «password». El atributo «name» es de tipo CharField, que representa una cadena de caracteres, mientras que el atributo «email» es de tipo EmailField, que representa una dirección de correo electrónico.
6. Crear serializadores
Los serializadores en Django REST Framework nos permiten convertir los objetos de Django en formatos de datos como JSON o XML, y viceversa. Los serializadores también nos permiten validar los datos de entrada antes de guardarlos en la base de datos.
Para crear serializadores, abrimos el archivo «serializers.py» en el directorio de la aplicación y definimos nuestras clases de serializador. Cada clase debe heredar de la clase «serializers.ModelSerializer» de Django REST Framework.
Por ejemplo, si queremos crear un serializador para el modelo de datos «User» que creamos anteriormente, podemos hacerlo de la siguiente manera:
from rest_framework import serializers
from myapp.models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ‘__all__’
En este ejemplo, hemos creado un serializador llamado «UserSerializer» que utiliza el modelo de datos «User» y serializa todos los campos del modelo.
7. Crear vistas basadas en clases
Las vistas en Django REST Framework son clases que definen cómo se manejan las solicitudes HTTP. Las vistas basadas en clases son una forma conveniente de definir las vistas en Django REST Framework, ya que nos permiten reutilizar código y mantener una estructura clara.
Para crear vistas basadas en clases, abrimos el archivo «views.py» en el directorio de la aplicación y definimos nuestras clases de vista. Cada clase debe heredar de una de las clases de vista proporcionadas por Django REST Framework, como «APIView» o «ViewSet».
Por ejemplo, si queremos crear una vista para listar todos los usuarios, podemos hacerlo de la siguiente manera:
from rest_framework import generics
from myapp.models import User
from myapp.serializers import UserSerializer
class UserList(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
En este ejemplo, hemos creado una vista llamada «UserList» que utiliza el modelo de datos «User» y el serializador «UserSerializer». La vista lista todos los usuarios en la base de datos.
8. Configurar las URL
Después de crear las vistas, necesitamos configurar las URL para que Django pueda enrutar las solicitudes HTTP a las vistas correspondientes.
Para configurar las URL, abrimos el archivo «urls.py» en el directorio del proyecto y agregamos las rutas correspondientes. Podemos utilizar la función «path» de Django para definir las rutas y vincularlas a las vistas.
Por ejemplo, si queremos vincular la ruta «/users/» a la vista «UserList» que creamos anteriormente, podemos hacerlo de la siguiente manera:
from django.urls import path
from myapp.views import UserList
urlpatterns = [
path(‘users/’, UserList.as_view()),
En este ejemplo, hemos agregado una ruta llamada «users/» que está vinculada a la vista «UserList».
9. Ejecutar el servidor y probar la API
Finalmente, podemos ejecutar el servidor de desarrollo de Django y probar nuestra API.
Para ejecutar el servidor, utilizamos el siguiente comando:
python manage.py runserver
Esto iniciará el servidor de desarrollo de Django en http://localhost:8000/. Podemos abrir esta URL en nuestro navegador y probar nuestra API.
Por ejemplo, si hemos configurado una ruta «/users/» que lista todos los usuarios, podemos abrir http://localhost:8000/users/ en nuestro navegador y ver los usuarios listados en formato JSON.
¡Felicidades! Has creado con éxito una API REST utilizando Django REST Framework. Ahora puedes continuar agregando más modelos, vistas y rutas para construir una API más completa y funcional.