Resumen
En este blog explicaremos acerca de la estructura de apirouter en la implementación con el framework de fastapi, el cual nos permite una utilización muy sencilla para crear Api’s y con esta estructura es posible una modulación de paquetes para que nuestro proyecto sea escalable y fácil de entender, sin pender el rendimiento del mismo.
Detalles
Con previo conocimiento en python para implementar este framework, comenzaremos instalando el ambiente necesario a traves del gestor de paquetes pip.
-pip install fastapi
-pip install «uvicorn[standard]
Con estas previas instalaciones , creamos nuestro archivo principal de donde empezara la api,
en el cual se implementara paquetes de routes , modules, providers. Según la necesidad del caso.
Adjunto el main con lo básico para empezar:
from fastapi import FastAPI
app = FastAPI()
@app.get(«/»)
def read_root():
return {«Hello»: «World»}
Podemos ver la instancia de fastapi y el objeto llamado app. el cual obtendra nuestra rutas .y probar esto en nuestro navegador para saber que todo esta bien , con el siguiente comando en nuestra terminal .
-uvicorn main:app –reload
El cual arroja la siguiente información en la terminal.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720] INFO: Started server process [28722] INFO: Waiting for application startup.
INFO: Application startup complete.
Nos dirigimos a nuestro localhost/docs, esto nos mostrara una documentación de las rutas realizadas. y se vera de la siguiente manera.
Si logramos llegar a este paso, excelente, ahora implementamos la estructura
El archivo main.py donde arranca nuestra aplicación, luego las rutas de cada modulo serán aisladas para trabajar de forma individual y fácil de escalar.
La carpeta models, corresponde a las clases de nuestra entidades, en un posible caso que estemos programando con algún ORM o programación orientada objetos. dentro de esta carpetas se almacena nuestras clases. un ejemplo opcional como quedaría.
Ésto es opcional.
En la siguiente carpeta Providers se encuentra la conexion a la base de datos y esquemas para la preparación en un uso de ORM por ejemplo SqlAlchemy .
Es opcional si deseas conectar con una base de datos y hacer utilización de un orm.
Un esquema de la clase User:
Después de haber explicado cada una de las carpetas, procedemos a la creación de rutas de la Api.
Con la siguiente estructura dentro de la carpeta Routes, el archivo __init__.py , este ira vació, pero lo que indica es un modulo y no una carpeta común.
El ejemplo del mainuser.py:
Indispensable las lineas 1 . el resto es para conexiones sqlalchemy , creacion de sesiones y manejamiento de datos con una clase .
notamos en la linea 12.
routeruser = APIRouter(prefix=»/user»)
Procedemos a registrar nuestra Ruta en el main, donde arranca la app.
Para incluir los objetos a las rutas, se evalua a traves del modulo, luego una subcarpeta en caso de existir, y por ultimo el archivo que la contiene , en este caso es mainuser.py al cual debo ponerle un alias con la palabra reservada as .
Ahi solo las importe, procedamos a incluirlas en las rutas.
Luego de la creacion del objeto tipo FastApi y algunos parametros, podemos incluir las rutas que deseamos,
Haciendo un llamado al objeto y el metodo include(), el cual espera un apirouter en sus parametros , por lo siguiente procedemos con el alias y llamamos al objeto APIRouter creado en el arhivo mainuser.py
Al final nuestro archivo main.py quedara algo asi. con ciertas implementaciones pero muy limpio de rutas y modulos por separado.
En la linea 28 en un redireccionamiento a la documentacion cada vez que ingrese al sitio.
Enlaces o mas información.
https://github.com/vidal1101/Flutter-FastApi
En este repositorio podran encontrar todo el codigo fuente y estructura junto a una app creada en flutter.
_______________________________________________________________________________________
Para mayor información contactar a servicio@rolosa.com
0 comentarios