REST API con Django

REST API con Django

Al crear una API REST con Django, aprenderás a crear modelos de datos, vistas, URLs y serializadores, así como la configuración de la base de datos y la gestión de solicitudes HTTP. También aprenderás a utilizar ORMs (Object Relational Mapping) para trabajar con bases de datos en Python, así como a añadir seguridad a tu API REST utilizando herramientas de autenticación y autorización en Django.

Por último, conocerás más sobre cómo proteger tu API contra ataques como XSS (Cross-site Scripting) y CSRF (Cross-site Request Forgery).


¿Por qué aprender Django y Django REST Framework?

¿Qué es Django?

Django es un framework de código abierto escrito en Python. Al conocer las bases de Python y tener conocimientos básicos en HTML, CSS y JavaScript, puedes crear aplicaciones web con Django.

¿Qué es Django REST Framework?

Es una extensión de Django que permite construir aplicaciones web API (Interfaz de Programación de Aplicaciones) RESTful de manera fácil y rápida. DRF proporciona una amplia gama de herramientas y funciones para crear, documentar y probar APIs, lo que facilita su integración con otras aplicaciones y servicios.

Crear el APP con Django

Estructura del proyecto

  • Project
  • APP

    Son independientes entre sí.

Paso 1: Configuramos el entorno

Primero nos aseguramos de tener Python y Node instalados en el sistema.

Para instalar Django, lo haremos con pip:

pip install Django

Paso 2: Crea un nuevo proyecto de Django

Abre una terminal y ejecuta el siguiente comando para crear el proyecto:

django-admin startproject tienda_virtual

Paso 3:  Navegar al directorio del proyecto

Inserta lo siguiente:

cd tienda_virtual

Dentro del proyecto que acabas de generar, el siguiente comando creará una aplicación llamada tienda_virtual con la estructura de un proyecto Django básico.

python manage.py startapp api

Esto creará un directorio llamado api dentro del proyecto.

Nos ubicamos en la carpeta creada donde se alojará el proyecto y generamos nuestro entorno virtual con el siguiente comando.

python3 -m venv .venv

Activamos el entorno virtual:

source .venv/bin/activate

El entorno virtual sirve para instalar las dependencias del proyecto. Con esto evitamos que las dependencias se instalen a nivel global en nuestro equipo. Podemos tener diferentes entornos para diferentes proyectos.

Levantamos a la aplicación:

python3 manage.py runserver


Paso 4:  Definir los modelos

En el archivo api/models.py, definimos los modelos que representarán los datos de tu tienda virtual. Por ejemplo, podrías tener modelos para Producto y Carrito de compras.


Cuando modificas los modelos en Django, necesitas realizar migraciones para reflejar esos cambios en la base de datos. Las migraciones son archivos que describen las alteraciones en la estructura de la base de datos y permiten mantener la consistencia entre los modelos de Django y la base de datos subyacente.

Para ejecutar las migraciones, sigue estos pasos:

  • Abre una terminal y navega hasta el directorio de tu proyecto. Ejecuta el siguiente comando:

python manage.py makemigrations

Con esto se formarán las migraciones.

Este comando buscará los cambios en tus modelos y creará los archivos de migración correspondientes en el directorio api/migrations.

  • Una vez generadas las migraciones, debes aplicarlas a la base de datos. Ejecuta el siguiente comando:

python manage.py migrate

Éste ejecutará las migraciones pendientes y actualizará la base de datos de acuerdo con los cambios realizados en tus modelos.

Es importante destacar que, cada vez que realices cambios en tus modelos, deberás repetir estos pasos para crear y aplicar las migraciones correspondientes.

Si deseas verificar el estado actual de las migraciones, puedes usar el siguiente comando:

python manage.py showmigrations

Este comando mostrará una lista de migraciones y resaltará las que se han aplicado.

Paso 5: Configurar la base de datos

Abrimos el archivo tienda_virtual/settings.py y configuramos la base de datos según tu preferencia. En este caso, utilizaremos SQLite para una configuración rápida:


Paso 6: “generar” las vistas y las rutas

En el archivo api/views.py, definimos las vistas que manejarán las solicitudes y respuestas de la API.


A continuación, en el archivo tienda_virtual/urls.py, define las rutas para tus vistas:

Paso 7: Configurar el archivo de los serializers

Crea un archivo llamado serializers.py en el directorio api para definir los serializadores, responsables de la serialización y deserialización de los objetos de Django en formatos compatibles con la API.

Paso 8: Iniciar el servidor de desarrollo

Ejecuta el siguiente comando:

python manage.py runserver

Esto iniciará el servidor en http://localhost:8000/.

Puedes probar la API accediendo a http://localhost:8000/productos/ en tu navegador o utilizando herramientas como cURL o Postman.

Ahora tienes una REST API básica para una tienda virtual. Puedes enviar solicitudes HTTP a las rutas definidas para crear productos, obtener los, recibir información del carrito y agregar productos al carrito. Recuerda que este es solo un ejemplo básico y puedes expandirlo y personalizarlo según las necesidades de tu proyecto.

Sin embargo, un proyecto completo puede variar según tus requerimientos y características adicionales que desees implementar. A continuación, te proporcionaré algunas áreas que podrías considerar para completar tu proyecto:

  1. Autenticación y autorización: Si deseas agregar un sistema de autenticación para usuarios, podrías utilizar el framework Django REST Framework (DRF) para implementar autenticación basada en tokens, JWT u otras estrategias de autenticación. También podrías establecer permisos y roles para restringir el acceso a ciertas rutas o recursos.
  2. Pagos y envíos: Si tu tienda virtual involucra procesamiento de pagos y envíos, puedes integrar servicios de pago en línea, como Stripe o PayPal, así como servicios de envío para calcular tarifas y generar etiquetas de envío.
  3. Imágenes y archivos adjuntos: Si necesitas manejar imágenes de productos u otros archivos adjuntos, puedes utilizar bibliotecas como Django Storages, Amazon S3 o Google Cloud.
  4. Pruebas y manejo de errores: Es importante implementar pruebas unitarias y de integración para garantizar el correcto funcionamiento de tu API. Además, debes considerar el manejo adecuado de errores y excepciones para brindar respuestas claras y consistentes en caso de fallos.

Espero que este artículo te ayude mucho en tus proyectos con Django.

¡Hasta la próxima!

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.