Apidog

Plataforma de desarrollo de API colaborativa todo en uno

Diseño de API

Documentación de API

Depuración de API

Simulación de API

Prueba automatizada de API

Cómo crear operaciones CRUD con FastAPI rápidamente

En este post, exploraremos cómo implementar rápidamente operaciones CRUD con FastAPI. Empezaremos configurando FastAPI y la base de datos, luego crearemos los endpoints API para las operaciones CRUD.

Daniel Costa

Daniel Costa

Updated on April 15, 2025

Las operaciones CRUD son esenciales en cualquier aplicación web que involucre el almacenamiento y la recuperación de datos. Estas operaciones permiten a los usuarios crear nuevos registros, recuperar registros existentes, actualizar registros existentes y eliminar registros de una base de datos.

FastAPI facilita la implementación de operaciones CRUD al proporcionar una forma sencilla e intuitiva de definir endpoints de API y manejar solicitudes HTTP. Aprovecha las sugerencias de tipo de Python para generar automáticamente documentación interactiva de la API y realizar la validación de datos, lo que la convierte en una herramienta poderosa para construir API robustas y bien documentadas.

En esta publicación, exploraremos cómo implementar rápidamente operaciones CRUD con FastAPI. Comenzaremos configurando FastAPI y la base de datos, luego procederemos a crear los endpoints de API para las operaciones CRUD. También cubriremos la implementación de las operaciones de creación, lectura, actualización y eliminación, así como las pruebas y la validación de estas operaciones. ¡Así que empecemos y sumérjase en el mundo de FastAPI y las operaciones CRUD!

¿Qué es CRUD en FastAPI?

En FastAPI, CRUD se refiere a las operaciones básicas que se pueden realizar en los datos en una base de datos o sistema de almacenamiento de datos. CRUD significa Create, Read, Update y Delete (Crear, Leer, Actualizar y Eliminar), y representa las funcionalidades fundamentales que son esenciales para administrar datos en la mayoría de las aplicaciones.

Aquí hay una explicación detallada de las operaciones CRUD en FastAPI:

  • Crear (C): Esta operación implica agregar nuevos datos a la base de datos. En FastAPI, puede crear datos enviando una solicitud POST al endpoint apropiado. Por ejemplo, para agregar un nuevo usuario al sistema, enviaría una solicitud POST al endpoint de creación de usuario con los detalles relevantes del usuario en el cuerpo de la solicitud.
  • Leer (R): La operación de lectura consiste en recuperar datos existentes de la base de datos. En FastAPI, puede realizar operaciones de lectura utilizando solicitudes GET. Por ejemplo, si desea recuperar todos los usuarios o los detalles de un usuario específico, enviaría una solicitud GET al endpoint respectivo.
  • Actualizar (U): Esta operación le permite modificar los datos existentes en la base de datos. En FastAPI, puede actualizar datos utilizando solicitudes PUT o PATCH. La solicitud PUT se utiliza para actualizar todo el recurso, mientras que PATCH se utiliza para modificar campos específicos del recurso. Por ejemplo, para actualizar la información de un usuario, enviaría una solicitud PUT o PATCH al endpoint del usuario con los detalles actualizados.
  • Eliminar (D): La operación de eliminación implica eliminar datos de la base de datos. En FastAPI, puede eliminar datos utilizando solicitudes DELETE. Por ejemplo, para eliminar un usuario del sistema, enviaría una solicitud DELETE al endpoint del usuario con el identificador o clave única del usuario.

Cómo crear operaciones CRUD con FastAPI rápidamente

Para implementar la funcionalidad CRUD con FastAPI, siga estos pasos:

Paso 1: Instale FastAPI: asegúrese de que Python esté instalado en su sistema y ejecute el siguiente comando en la línea de comandos para instalar FastAPI:

pip install fastapi

Paso 2: Cree una aplicación FastAPI: cree un nuevo archivo de Python (por ejemplo, main.py) e importe los módulos y bibliotecas necesarios:

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

app = FastAPI()

Paso 3: Defina modelos de datos: use Pydantic para definir modelos de datos. Por ejemplo:

class Item(BaseModel):
    id: int
    name: str
    price: float

Paso 4: Cree rutas y controladores CRUD: use FastAPI para crear rutas y funciones de manejo correspondientes para las operaciones CRUD. Aquí hay un ejemplo:

items = []

@app.get("/items", response_model=List[Item])
async def read_items():
    return items

@app.post("/items", response_model=Item)
async def create_item(item: Item):
    items.append(item)
    return item

@app.put("/items/{item_id}", response_model=Item)
async def update_item(item_id: int, item: Item):
    items[item_id] = item
    return item

@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
    del items[item_id]
    return {"message": "Item deleted"}

Paso 5: Ejecute la aplicación: para ejecutar la aplicación FastAPI y probar la funcionalidad APIRouter, use un servidor ASGI como uvicorn. Asegúrese de tener uvicorn instalado:

pip install uvicorn

En su editor IDE, abra la terminal, navegue hasta el directorio donde está almacenado el archivo main.py y ejecute el siguiente comando para iniciar la aplicación:

uvicorn main:app --reload

Esto iniciará la aplicación FastAPI en el puerto predeterminado (generalmente 8000) con la recarga automática habilitada, por lo que la aplicación se recargará automáticamente cuando realice cambios en el código.

Paso 6: Pruebe la operación CRUD

Utilice una herramienta de cliente HTTP (por ejemplo, cURL o Apidog) para enviar solicitudes y probar las funcionalidades de Crear, Leer, Actualizar y Eliminar. Aquí hay algunas solicitudes de ejemplo:

  • Cree un nuevo elemento: envíe una solicitud POST con el cuerpo de la solicitud para crear un nuevo elemento.
POST http://localhost:8000/items
{
    "id": 1,
    "name": "Apple",
    "price": 0.5
}
 a POST request
  • Obtenga todos los elementos: envíe una solicitud GET para recuperar todos los elementos.
GET http://localhost:8000/items
a GET request
  • Actualice un elemento: envíe una solicitud PUT con el cuerpo de la solicitud para actualizar un elemento.
GET http://localhost:8000/items
a PUT request
  • Elimine un elemento: envíe una solicitud DELETE para eliminar un elemento.
DELETE http://localhost:8000/items/1
 a DELETE request

Por último, podemos escribir pruebas para la operación de eliminación en Apidog. Podemos simular una solicitud DELETE al endpoint de eliminación y verificar si el código de estado de la respuesta es 200 (lo que indica una eliminación exitosa). Luego podemos intentar recuperar los datos eliminados de la base de datos y asegurarnos de que no existan.

Al escribir estas pruebas, podemos asegurarnos de que nuestras operaciones CRUD funcionen correctamente y manejen diferentes escenarios, como entradas no válidas o datos inexistentes.

Consejos adicionales

Utilice la compatibilidad con IDE como Visual Studio Code para mejorar la eficiencia del desarrollo con funciones de autocompletado de código, verificación de errores y depuración.

  • Cuando utilice FastAPI, aproveche la compatibilidad con IDE como Visual Studio Code para mejorar la eficiencia del desarrollo con funciones de autocompletado de código, verificación de errores y depuración.
  • Organice su base de código separando las rutas y las funciones de manejo en diferentes módulos, promoviendo la mantenibilidad y la escalabilidad. Utilice la compatibilidad asíncrona de FastAPI para operaciones asíncronas para mejorar el rendimiento y las capacidades de concurrencia.
  • Garantice la seguridad de la API con mecanismos adecuados de autenticación y autorización. Utilice modelos Pydantic para la validación y serialización de datos para mantener la coherencia de los datos y manejar los errores de manera efectiva. Implemente CORS para el intercambio de recursos de origen cruzado cuando sea necesario.
  • Cree pruebas unitarias y de integración integrales para garantizar la confiabilidad y la funcionalidad de la API. Maneje los errores con elegancia con el manejo de excepciones de FastAPI y las respuestas de error personalizadas. Supervise el rendimiento con registros y generadores de perfiles, y mantenga FastAPI y sus dependencias actualizados para correcciones de errores y nuevas funciones.

Siguiendo estas prácticas, puede desarrollar API robustas y eficientes con FastAPI, agilizando su proceso de desarrollo e implementación.

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

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.

Daniel Costa

April 15, 2025

Cómo usar n8n con servidores MCPTutoriales

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.

Daniel Costa

April 14, 2025

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

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).

Daniel Costa

April 11, 2025