Hola Mundo en FastApi | 2
Finalmente, es momento de crear el "Hola Mundo" con FastApi; es decir, implementar lo mínimo necesario para poder ver algo por pantalla; así que, creamos un archivo dentro del proyecto (la carpeta tasks):
api.py
Con el siguiente código:
api.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def hello_world():
return {"hello": "world"}
En este primer ejemplo, lo primero que hacemos es cargar una clase que proporciona acceso al framework de FastAPI:
from fastapi import FastAPI
Con esta clase, creamos una instancia de FastApi:
app = FastAPI()
Lo cual nos da acceso a múltiples funcionalidades del framework, como lo es, crear las rutas de la aplicación.
Definimos una petición de tipo GET para la raíz y esto se hace mediante un decorador como el que podemos ver a continuación:
@app.get("/")
Por supuesto, podemos acceder a otros tipos de peticiones como POST, PUT, PATCH o DELETE indicando el método correspondiente el cual tiene su equivalente directo con el nombre de la petición a usar; es decir, para enviar una petición de tipo GET, usamos la función de get(), para enviar una petición de tipo POST, usamos la función de post().
Al igual que ocurre con otros frameworks web, cada petición es procesada mediante una función, en el ejemplo anterior, la petición de tipo GET para la raíz, es procesada mediante una función llamada hello_world() que lo único que hace es devolver un diccionario indicando el mensaje de "hola mundo":
@app.get("/")
def hello_world():
return {"hello": "world"}
Con esto, tenemos nuestro primer ejemplo de hola mundo en FlastApi; pero, para poder ver este mensaje por pantalla, específicamente cualquier programa que permite procesar peticiones HTTP como lo es un navegador, tenemos que levantar el servidor asociado a la aplicación anterior y es aquí en donde usamos el servidor de uvicorn instalado anteriormente; para ello, desde la terminal y raíz del proyecto, usamos el siguiente comando:
$ uvicorn api:app --reload
Con el comando anterior, indicamos el nombre del archivo, que en este caso es el llamado api.py:
api:app
Y que el servidor se mantenga atento a los cambios; es decir, con la opción de:
--reload
El servidor se recargará cada vez que se realicen cambios en la aplicación.
Al ejecutar el comando anterior, veremos por la terminal:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [15820] using StatReload
INFO: Started server process [4024]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: 127.0.0.1:58209 - "GET / HTTP/1.1" 200 OK
INFO: 127.0.0.1:58209 - "GET /favicon.ico HTTP/1.1" 404 Not Found
INFO: 127.0.0.1:58209 - "GET / HTTP/1.1" 200 OK