Creación de una API con Django en Python

Tutorial: Creación de una API con Django en Python

En este tutorial, aprenderemos a crear una API con Django en Python. Django es un framework web de Python que facilita el desarrollo de aplicaciones web. Django REST Framework es un framework de terceros que se utiliza para crear APIs RESTful con Django.

Requisitos

Para seguir este tutorial, necesitarás lo siguiente:

  • Una instalación de Python 3.8 o superior
  • Un editor de código
  • Un servidor web, como Gunicorn: https://gunicorn.org/ o uWSGI: https://uwsgi-docs.readthedocs.io/en/latest/

Paso 1: Instalar Django y Django REST Framework

Lo primero que debemos hacer es instalar Django y Django REST Framework. Podemos hacerlo con el siguiente comando:

pip install django djangorestframework

Paso 2: Crear un proyecto Django

Una vez que tengamos instalados Django y Django REST Framework, podemos crear un proyecto Django. Podemos hacerlo con el siguiente comando:

django-admin startproject my_api

Esto creará un directorio llamado my_api con los siguientes archivos:

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

Paso 3: Crear una aplicación Django

A continuación, debemos crear una aplicación Django para nuestra API. Podemos hacerlo con el siguiente comando:

python manage.py startapp api

Esto creará un directorio llamado api con los siguientes archivos:

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

Paso 4: Crear un modelo

Para crear una API RESTful, necesitamos crear un modelo para representar los datos que queremos exponer. En este caso, vamos a crear un modelo para representar libros. Podemos hacerlo añadiendo el siguiente código a api/models.py:

Python
from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=255)
    author = models.CharField(max_length=255)
    published_date = models.DateField()

    def __str__(self):
        return self.title

Este modelo tiene tres campos:

  • title: El título del libro
  • author: El autor del libro
  • published_date: La fecha de publicación del libro

Paso 5: Crear una vista

Una vez que tengamos un modelo, podemos crear una vista para exponer los datos de ese modelo. En este caso, vamos a crear una vista para devolver una lista de todos los libros. Podemos hacerlo añadiendo el siguiente código a api/views.py:

Python
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.decorators import api_view


class BookListView(APIView):

    def get(self, request):
        books = Book.objects.all()
        return Response(books.values())

Esta vista utiliza el método get() para devolver una lista de todos los libros.

Paso 6: Registrar la vista

Para que nuestra vista sea accesible, debemos registrarla en el archivo api/urls.py. Podemos hacerlo añadiendo la siguiente línea al archivo:

Python
from api.views import BookListView


urlpatterns = [
    path('books/', BookListView.as_view()),
]

Esta línea registra nuestra vista en la ruta /books/.

Paso 7: Ejecutar la API

Una vez que hayamos registrado nuestra vista, podemos ejecutar la API con el siguiente comando:

python manage.py runserver

Esto iniciará un servidor web en el puerto 8000. Podemos probar nuestra API visitando la siguiente URL en nuestro navegador:

http://localhost:8000/books/

Si todo ha ido bien, debería ver una lista de todos los libros.

Paso 8: Agregar más funcionalidades