Creación de API REST con Python

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:

Python
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:

Python
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:

Python
@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:

Python
@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:

Python
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:

Python
@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.