Creación de una API REST con Django

Creación de una API REST con Django

Introducción

Una API REST es un conjunto de recursos que se pueden acceder y manipular a través de una interfaz HTTP. Django REST Framework es un framework de Python que facilita la creación de APIs REST.

En este tutorial, aprenderás a crear una API REST simple con Django REST Framework.

Requisitos previos

Para seguir este tutorial, necesitarás los siguientes requisitos previos:

  • Python 3.6 o superior
  • Django 3.2 o superior
  • Django REST Framework 3.13 o superior

Instalación de Django y Django REST Framework

Para instalar Django y Django REST Framework, ejecuta los siguientes comandos:

pip install django
pip install djangorestframework

Creación de un proyecto Django

Para crear un proyecto Django, ejecuta el siguiente comando:

django-admin startproject myproject

Este comando creará un directorio llamado myproject con los siguientes archivos:

  • myproject/settings.py: Archivo de configuración del proyecto
  • myproject/urls.py: Archivo de URL del proyecto
  • myproject/wsgi.py: Archivo WSGI del proyecto

Creación de una aplicación Django

Para crear una aplicación Django, ejecuta el siguiente comando:

python manage.py startapp myapp

Este comando creará un directorio llamado myapp con los siguientes archivos:

  • myapp/admin.py: Archivo de administración de la aplicación
  • myapp/apps.py: Archivo de información de la aplicación
  • myapp/models.py: Archivo de modelos de la aplicación
  • myapp/tests.py: Archivo de pruebas de la aplicación
  • myapp/views.py: Archivo de vistas de la aplicación

Configuración de Django REST Framework

Para configurar Django REST Framework, añade las siguientes líneas al archivo myproject/settings.py:

INSTALLED_APPS = [
    ...
    'rest_framework',
]

También puedes añadir la siguiente línea para habilitar la autenticación de usuario:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
    ),
}

Creación de un modelo de datos

Para crear un modelo de datos, añade la siguiente clase al archivo myapp/models.py:

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    description = models.TextField()
    price = models.DecimalField(max_digits=10, decimal_places=2)

Este modelo define una entidad de producto con los siguientes campos:

  • name: Nombre del producto
  • description: Descripción del producto
  • price: Precio del producto

Creación de un serializador

Un serializador es un objeto que convierte los objetos del modelo de datos en datos JSON. Para crear un serializador, añade la siguiente clase al archivo myapp/serializers.py:

from rest_framework import serializers

class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = Product
        fields = ('name', 'description', 'price')

Este serializador serializa los campos name, description y price del modelo de datos Product.

Creación de una vista

Una vista es un objeto que maneja las solicitudes HTTP. Para crear una vista, añade la siguiente clase al archivo myapp/views.py:

from rest_framework.generics import ListAPIView

class ProductListView(ListAPIView):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer

Esta vista devuelve una lista de todos los productos.

Creación de una URL

Una URL es una dirección que identifica un recurso. Para crear una URL para la vista ProductListView, añade la siguiente línea al archivo myproject/urls.py:

urlpatterns = [
    ...
    path('products/', ProductListView.as_view()),
]

Ejecución de la aplicación

Para ejecutar la aplicación, ejecuta el siguiente comando:

python manage.py runserver

Esto iniciará un servidor web