Skip to content

Tutorial sobre la creación de una API REST con FastAPI y validación de modelos...

License

Notifications You must be signed in to change notification settings

juangcarmona/fastapi-rest-api-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FastAPI REST API Tutorial

Este repositorio es un ejemplo de una API RESTful implementada con FastAPI. Incluye conceptos como DDD, Vertical Slices, Inyección de Dependencias, Seguridad, Swagger y más.

Tutoriales en Video

Video 1: Introducción y Configuración Inicial

En este vídeo tratamos la versión inicial, básica pero funcional, aunque claro, no hay seguridad ni ninguna de las técnicas que se han desarrollado a posteriori.

Vídeo 2:

TODO: grabar y publicar el vídeo.

Características

  • FastAPI: Framework web moderno y de alto rendimiento para construir APIs con Python 3.7+ basado en estándares como OpenAPI y JSON Schema.
  • RESTful API: Diseño de la API siguiendo los principios REST.
  • Domain-Driven Design (DDD): Separación clara de las responsabilidades y lógica del dominio.
  • Vertical Slices: Organización del código por características en lugar de por capas técnicas.
  • Inyección de Dependencias: Gestión e inyección de dependencias con FastAPI.
  • Seguridad: Implementación de autenticación y autorización.
  • Swagger: Documentación interactiva de la API.

Estructura del Proyecto

qna_api/
│
├── auth/
│   ├── models.py
│   ├── routes.py
│   └── service.py
│
├── core/
│   ├── base_repository.py
│   ├── config.py
│   ├── constants.py
│   ├── database.py
│   └── logging.py
│
├── domain/
│   ├── answer.py
│   ├── question.py
│   └── user.py
│
├── questions/
│   ├── models.py
│   ├── repositories.py
│   ├── routes.py
│   └── services.py
│
└── user/
    ├── controller.py
    ├── models.py
    ├── repository.py
    └── service.py

Instalación

  1. Clona el repositorio:

    git clone https://github.com/jgcarmona-com/fastapi-rest-api-tutorial.git
  2. Navega al directorio del proyecto:

    cd fastapi-rest-api-tutorial
  3. Crea un entorno virtual y activa:

    python -m venv .venv
    source venv/bin/activate  # En Windows usa `venv\Scripts\activate`
  4. Instala las dependencias:

    pip install -r requirements.txt
  5. Configura las variables de entorno: Antes de iniciar la aplicación, necesitas configurar las variables de entorno. Sigue estos pasos:

    1. Copia el archivo .env.example a .env:
    cp .env.example .env
    1. Rellena las variables de entorno en el archivo .env con tus propios valores:
    SECRET_KEY=your_secret_key
    ALGORITHM=HS256
    ACCESS_TOKEN_EXPIRE_MINUTES=30
    DATABASE_URL=sqlite:///./sql_app.db
    INITIAL_ADMIN_USERNAME=admin
    INITIAL_ADMIN_EMAIL=admin@example.com
    INITIAL_ADMIN_PASSWORD=admin
    
  6. Inicia la aplicación: Desde vscode selecciona la opción local o docker y ejecútalo.

Uso

  1. Visita http://127.0.0.1:8000 y te redirigirá a /doc para ver la documentación interactiva de la API (swagger).
  2. Visita http://127.0.0.1:8000/redoc para ver la documentación alternativa de la API.

Enlaces útiles

Versiones anteriores

About

Tutorial sobre la creación de una API REST con FastAPI y validación de modelos...

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published