Tu Primera API con FastAPI: Configuración del Entorno y tu Primer Endpoint
desarrollo api rest, desarrollo, fastapi, pythonEste artículo está dirigido a principiantes que desean aprender a crear APIs de manera rápida y moderna utilizando FastAPI. El objetivo es guiar al lector a través de la configuración del entorno de desarrollo, la creación de un primer endpoint “Hello World” y la exploración de la documentación automática que FastAPI proporciona.
1. Preparación del Entorno de Desarrollo
Es fundamental establecer un entorno de desarrollo limpio y organizado para aislar las dependencias del proyecto.
1.1 Importancia del Entorno Virtual (venv)
- Definición: Un entorno virtual es un directorio que contiene una instalación independiente de Python, sus scripts
pipysetuptools, y donde se instalan las bibliotecas específicas del proyecto. - Beneficios:
- Aislamiento de dependencias: Permite que cada proyecto tenga sus propias versiones de bibliotecas sin afectar a otros proyectos o a la instalación global de Python.
- Prevención de conflictos: Evita que las actualizaciones de paquetes en un proyecto rompan la funcionalidad de otro.
- Mantenimiento del sistema limpio: La instalación global de Python se mantiene intacta.
- Facilitación de la colaboración: Permite compartir proyectos fácilmente mediante un archivo
requirements.txtpara recrear el entorno.
- Creación del entorno virtual:
- Comando:
python -m venv venv - Esto crea una carpeta llamada
venven el directorio del proyecto.
- Comando:
- Activación del entorno virtual:
- macOS/Linux:
source venv/bin/activate - Windows (Command Prompt o PowerShell):
venv\Scripts\activate - La activación se verifica al ver
(venv)al inicio delpromptde la terminal.
- macOS/Linux:
1.2 Instalación de FastAPI y Uvicorn
Con el entorno virtual activo, se instalan las herramientas principales:
- FastAPI: Framework web moderno y de alto rendimiento para la creación de APIs, construido sobre Starlette y Pydantic.
- Uvicorn: Servidor ASGI (Asynchronous Server Gateway Interface) necesario para ejecutar aplicaciones FastAPI.
Comando de instalación recomendado:
pip install "fastapi[standard]"
Este comando instala FastAPI junto con dependencias recomendadas como Uvicorn y Pydantic.
Verificación de la instalación:
- Comando:
pip show fastapi - Muestra información sobre el paquete FastAPI instalado.
2. Construcción del Primer Endpoint “Hola Mundo”
Se crea el código para una API simple que devuelve un mensaje.
2.1 Creación del Archivo Principal (main.py)
Se crea un archivo llamado main.py en la raíz de la carpeta del proyecto.
2.2 Código de la Primera API
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
"""
Este endpoint devuelve un mensaje simple de "Hello, FastAPI!".
"""
return {"message": "Hello, FastAPI!"}
Explicación del código:
from fastapi import FastAPI: Importa la claseFastAPI.app = FastAPI(): Crea una instancia de la aplicación FastAPI.@app.get("/"): Decorador que define un endpoint para solicitudesGETen la ruta raíz (/).async def read_root():: Define una función asíncrona que maneja la solicitud.return {"message": "Hello, FastAPI!"}: Devuelve un diccionario que FastAPI convierte automáticamente en una respuesta JSON.
3. Puesta en marcha de la API con Uvicorn
Se utiliza Uvicorn para ejecutar la aplicación FastAPI y hacerla accesible.
3.1 Rol de Uvicorn
Uvicorn es un servidor ASGI que ejecuta la aplicación FastAPI, haciéndola disponible a través de HTTP.
3.2 Ejecución de la Aplicación FastAPI
- Asegurarse de que la terminal tenga el entorno virtual
(venv)activado y esté en la carpeta del proyecto. - Comando para iniciar el servidor:
uvicorn main:app --reloaduvicorn: Comando para ejecutar el servidor.main: Módulo Python (main.py).app: ObjetoFastAPI()dentro demain.py.--reload: Reinicia automáticamente el servidor al detectar cambios en el código.
El servidor se iniciará típicamente en http://127.0.0.1:8000.
4. Prueba de la API y Documentación Automática
Se accede al endpoint y se explora la documentación generada por FastAPI.
4.1 Acceso al Primer Endpoint
- Abrir un navegador web y navegar a
http://127.0.0.1:8000. - Se mostrará la respuesta JSON:
{"message": "Hello, FastAPI!"}.
4.2 Documentación Interactiva (Swagger UI)
- Navegar a
http://127.0.0.1:8000/docs. - Se presenta la interfaz Swagger UI, que muestra automáticamente los endpoints, métodos HTTP, parámetros y modelos de respuesta.
- Permite probar los endpoints directamente desde el navegador con la opción “Try it out”.
4.3 Documentación Alternativa (ReDoc)
- Navegar a
http://127.0.0.1:8000/redoc. - Ofrece una vista más concisa de la documentación.
Conclusión
Recapitulando los pasos aprendidos:
- Configuración de
venv - Instalación de FastAPI y Uvicorn
- Creación del endpoint “Hello World”
- Ejecución con Uvicorn y
- La exploración de la documentación automática (Swagger UI y ReDoc).
Se anima al lector a seguir aprendiendo sobre la adición de más endpoints, validación de datos con Pydantic y el uso de parámetros.
Próximos Pasos y Recursos:
- Añadir más endpoints y métodos HTTP.
- Explorar la validación de datos con Pydantic.
- Aprender sobre parámetros de ruta y de consulta.
- Consultar la documentación oficial de FastAPI.
Referencias: