Creación de API REST con Python
En este tutorial aprenderás a crear una API REST con Python. Las APIs REST son un tipo de interfaz de programación de aplicaciones que se basa en los principios de Representational State Transfer (REST). Son utilizadas para el desarrollo de aplicaciones web y móviles, y permiten a los desarrolladores interactuar con datos y servicios de forma sencilla y estandarizada.
Requisitos previos
Para seguir este tutorial, necesitarás los siguientes requisitos previos:
- Conocimientos básicos de Python
- Un editor de código
- Una instalación de Python 3
Instalando FastAPI
FastAPI es un framework web de Python que facilita la creación de APIs REST. Para instalarlo, abre una terminal y ejecuta el siguiente comando:
pip install fastapi
Creando un proyecto
Para crear un proyecto, crea una nueva carpeta y abre un archivo llamado app.py
. En este archivo, importaremos las siguientes bibliotecas:
import uvicorn
from fastapi import FastAPI
A continuación, crearemos una instancia de la clase FastAPI
y la configuraremos para que escuche en el puerto 8000:
app = FastAPI()
@app.get("/")
def read_root():
return "Hello, world!"
Este código crea un endpoint /
que devuelve la cadena «Hello, world!». Para ejecutar el servidor, ejecuta el siguiente comando en la terminal:
uvicorn app:app --reload
Este comando abrirá un servidor web en el puerto 8000. Para probar la API, abre un navegador y navega a la dirección http://localhost:8000
. Deberías ver el mensaje «Hello, world!».
Creando endpoints
Podemos crear endpoints para realizar diversas operaciones, como obtener, crear, actualizar y eliminar datos. Para crear un endpoint, utilizamos la anotación @app.<método>
, donde <método>
es el método HTTP que queremos utilizar.
Por ejemplo, para crear un endpoint /users
que devuelve una lista de usuarios, podemos utilizar el siguiente código:
@app.get("/users")
def get_users():
return [
{"id": 1, "name": "John Doe"},
{"id": 2, "name": "Jane Doe"},
]
Para crear un endpoint /users
que crea un nuevo usuario, podemos utilizar el siguiente código:
@app.post("/users")
def create_user():
data = request.get_json()
user = {"id": len(users) + 1, "name": data["name"]}
users.append(user)
return user
Validando datos
Podemos validar los datos que recibimos a través de los endpoints utilizando los esquemas de datos. Los esquemas de datos son objetos que definen la estructura de los datos que esperamos recibir.
Para crear un esquema de datos para los usuarios, podemos utilizar el siguiente código:
from typing import Optional
class UserSchema:
id: int
name: str
age: Optional[int] = None
Para validar los datos de un usuario, podemos utilizar el siguiente código:
@app.post("/users")
def create_user():
data = request.get_json()
user_schema = UserSchema()
user_data = user_schema.load(data)
return user_data
Documentando la API
Podemos documentar la API utilizando la herramienta Swagger UI: https://swagger.io/swagger-ui/. Para generar la documentación, podemos utilizar el siguiente comando:
uvicorn app:app --reload --docs
Este comando abrirá una interfaz web en la dirección http://localhost:8000/docs
. En esta interfaz, podemos ver una descripción de la API, así como los endpoints disponibles y sus parámetros.
Conclusión
En este tutorial, aprendiste a crear una API REST con Python. Utilizando FastAPI, podemos crear APIs REST de forma sencilla y eficiente.