Cómo usar FastAPI para crear y manejar solicitudes POST

Aprende a crear y gestionar peticiones POST con FastAPI. Guía completa sobre configuración, validación de datos, subida de archivos y más. Ideal para principiantes y expertos. #FastAPI #API #apidog.com

Daniel Costa

Daniel Costa

15 April 2025

Cómo usar FastAPI para crear y manejar solicitudes POST

Si te estás adentrando en el mundo del desarrollo web moderno, es probable que hayas oído hablar de FastAPI. Es uno de los frameworks de más rápido crecimiento para construir APIs en Python. En esta entrada de blog, vamos a explorar cómo usar FastAPI para crear y manejar peticiones POST. Tanto si eres un desarrollador experimentado como si estás empezando, esta guía te ayudará a comprender los conceptos básicos y más allá.

button

¿Qué es FastAPI?

FastAPI es un framework web moderno, rápido (de alto rendimiento) para construir APIs con Python 3.7+ basado en indicaciones de tipo estándar de Python. Está diseñado para ser fácil de usar y para proporcionar un alto rendimiento a la par con Node.js y Go. El framework también es muy intuitivo y directo, lo que lo convierte en una excelente opción tanto para principiantes como para expertos.

¿Por qué usar FastAPI?

Hay varias razones por las que los desarrolladores están eligiendo FastAPI sobre otros frameworks:

  1. Velocidad: FastAPI es rápido. De hecho, es uno de los frameworks web más rápidos disponibles en la actualidad.
  2. Facilidad de uso: Con la documentación interactiva automática (gracias a Swagger UI y ReDoc), es increíblemente fácil probar tus APIs.
  3. Validación de datos: FastAPI aprovecha Pydantic para la validación de datos, lo que garantiza que los datos que recibe tu API sean válidos.
  4. Listo para Async: Soporta la programación asíncrona de fábrica, lo que lo hace adecuado para aplicaciones web modernas de alto rendimiento.
Fast api

Configurando FastAPI

Antes de sumergirnos en las peticiones POST, vamos a configurar rápidamente FastAPI. Necesitarás Python instalado en tu sistema. Luego, puedes instalar FastAPI y un servidor ASGI, como Uvicorn, usando pip:

pip install fastapi uvicorn

Una vez que tengas FastAPI instalado, puedes crear una aplicación FastAPI simple. Empecemos creando un archivo llamado main.py:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Para ejecutar la aplicación, usa Uvicorn:

uvicorn main:app --reload

Abre tu navegador y navega a http://127.0.0.1:8000. Deberías ver una respuesta JSON: {"Hello": "World"}.

Post request

Creando un Endpoint POST

Ahora que tenemos una aplicación FastAPI básica en ejecución, vamos a añadir un endpoint POST. Las peticiones POST se utilizan para enviar datos para ser procesados a un recurso especificado. Para manejar una petición POST en FastAPI, se utiliza el decorador @app.post.

Aquí tienes un ejemplo sencillo de cómo manejar una petición POST:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

En este ejemplo:

  1. Definimos una instancia de FastAPI.
  2. Creamos un modelo Pydantic Item que describe la estructura de datos del cuerpo de la petición.
  3. Usamos el decorador @app.post para definir un endpoint POST /items/.
  4. La función create_item toma un objeto Item como entrada y lo devuelve.

Para probar esto, puedes usar un cliente API como apidog o simplemente usar la interfaz de usuario interactiva de Swagger proporcionada por FastAPI en http://127.0.0.1:8000/docs.

Manejo de datos y validaciones

FastAPI valida automáticamente los datos de la petición con el modelo Pydantic. Si los datos no se ajustan al modelo, FastAPI devuelve un código de estado 422 con detalles sobre los errores de validación.

Por ejemplo, si envías una petición POST a /items/ con el siguiente cuerpo JSON:

{
    "name": "Item name",
    "price": 25.5
}

FastAPI aceptará esta petición porque cumple con los requisitos del modelo Item. Sin embargo, si omites el campo price, FastAPI rechazará la petición y devolverá un error.

Usando Apidog para probar tu petición POST de FastAPI

Apidog es una herramienta poderosa para probar APIs. Te permite crear y guardar peticiones API, organizarlas en colecciones y compartirlas con tu equipo.

button

Aquí te mostramos cómo puedes usar Apidog para probar tu petición POST:

  1. Abre Apidog y crea una nueva petición.
Select new request

2. Establece el método de petición a POST.

Select Post request

3. Introduce la URL del recurso que quieres actualizar. Añade cualquier encabezado o parámetro adicional que quieras incluir y luego haz clic en el botón "Enviar" para enviar la petición.

4. Verifica que la respuesta sea la que esperabas.

Verify the response

Peticiones POST avanzadas

Ahora, vamos a explorar algunos escenarios más avanzados. FastAPI te permite hacer mucho más con las peticiones POST. Por ejemplo, puedes:

Manejo de subidas de archivos

Aquí tienes un ejemplo de cómo manejar subidas de archivos con FastAPI:

from fastapi import FastAPI, File, UploadFile

app = FastAPI()

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile):
    return {"filename": file.filename}

Este endpoint aceptará un archivo y devolverá el nombre del archivo. Puedes probar esto con apidog o Swagger UI.

Procesando datos de formulario

Para procesar datos de formulario, usa la clase Form de FastAPI:

from fastapi import FastAPI, Form

app = FastAPI()

@app.post("/login/")
def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username}

Este ejemplo crea un endpoint de inicio de sesión que acepta datos de formulario. Puedes probar esto usando un envío de formulario en tu navegador o una herramienta de prueba de API.

Usando parámetros de ruta

También puedes combinar parámetros de ruta con peticiones POST:

from fastapi import FastAPI

app = FastAPI()

@app.post("/users/{user_id}/items/")
def create_item_for_user(user_id: int, item: Item):
    return {"user_id": user_id, "item": item}

Este endpoint crea un elemento para un usuario específico, identificado por el parámetro de ruta user_id.

Conclusión

FastAPI es un framework poderoso que facilita la construcción de APIs robustas con Python. Su soporte para la validación de datos, la documentación interactiva y el alto rendimiento lo convierten en una excelente opción para el desarrollo web moderno.

En esta entrada de blog, hemos cubierto cómo configurar una aplicación FastAPI y manejar peticiones POST. También hemos explorado temas más avanzados como la subida de archivos, el procesamiento de datos de formulario y la combinación de parámetros de ruta con peticiones POST. A estas alturas, deberías tener una sólida comprensión de cómo usar FastAPI para crear y manejar peticiones POST.

Recuerda, tanto si estás construyendo una API simple como una aplicación compleja, FastAPI tiene las herramientas que necesitas para tener éxito. ¡Feliz codificación!

Explore more

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Cómo usar Lovable AI (Alternativa a Cursor para desarrolladores web)

Aprende a crear cualquier web con Lovable en esta guía completa. Descubre procesos paso a paso, funciones innovadoras e integra herramientas gratuitas como Apidog para gestión API.

15 April 2025

Cómo usar n8n con servidores MCP

Cómo usar n8n con servidores MCP

Automatiza flujos con n8n y servidores MCP para IA. Guía técnica: configuración, APIs, nodo "MCP Server Trigger" y Apidog para pruebas.

14 April 2025

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Cómo añadir claves API personalizadas a Cursor: Una guía completa

Este tutorial te guiará para configurar y gestionar claves API personalizadas en Cursor (OpenAI, Anthropic, Google y Azure).

11 April 2025

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs