Creación e implementación de una API REST que muestra datos referentes a las unidades del Metrobus CDMX. Dichos datos fueron exportados de Datos abiertos de México. No obstante, fueron añadidos en un archivo dataset.csv para su posterior uso, asi como, se le asignaron las alcaldias a cada unidad.
En la siguiente imagen se muestran las funciones o peticiones GET con las que cuenta esta API:
Para observar como se llevo a cabo el procedimiento para la solución, se ha realizado un diagrama en el cual se explican las herramientas y pasos que se tomaron para dicho fin. Este se encuentra en la carpeta diagrama de este repositorio contando con un archivo PDF o JPEG.
- Descargar o clonar el repositorio donde se desee: git clone https://github.com/vicogarcia16/Unidades_Metrobus
Por defecto y de manera local la API trabaja con la base de datos SQLite metrobus.db. Sin embargo, si se deseará trabajar en Docker, comentar sus lineas y descomentar las lineas correspondientes de PostgreSQL en el archivo db.py.
file_path = os.path.abspath(os.getcwd())+"\metrobus.db"
SQLALCHEMY_DATABASE_URL = "sqlite:///"+file_path
engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False})
SQLALCHEMY_DATABASE_URL = "postgresql://postgres:password@db:5432/metrobus"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
- Abrir una ventana CMD y rear un entorno virtual para Python si se desea trabajar en local. Ejem. python3 -m venv fastapi-env, activarlo con fastapi-env\Scripts\activate.bat. Posteriormente ejecutar el archivo requirements.txt con pip install -r requirements.txt
- Si se requiere ejecutar en Docker, favor de realizar el siguiente comando en una ventana CMD: docker-compose up -d
- Importar los datos de dataset.csv si en dado caso no se visualizan en la API.
- El Archivo principal es main.py
- Ejecutar el comando en cmd o terminal [uvicorn main:app --reload]
- Posteriormente acceder a la url por defecto [127.0.0.1:8000]
- Si ha realizado la imagen Docker ejecutar el contenedor creado "micro-service-fastapi" y posteriormente abrir el navegador en la URL: [localhost:5000]
- Python - Lenguaje de programación
- SQLite - Base de datos
- PostgreSQL - Base de datos
- FastAPI - Framework Web
- SQL Alchemy - Kit de herramientas SQL para Python
- Víctor García vicogarcia16