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 proyectomy_api/urls.py
: Archivo de rutas del proyectomy_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ónapi/apps.py
: Archivo de aplicación de la aplicaciónapi/models.py
: Archivo de modelos de la aplicaciónapi/tests.py
: Archivo de pruebas de la aplicaciónapi/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
:
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 libroauthor
: El autor del libropublished_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
:
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:
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