FastAPI es un framework web de alto rendimiento para la construcción de API en Python 3.6+. Veamos cómo funciona este framework por medio de ejercicio. Para ello, primero definamos qué es una API.
FastAPI: Ejercicio de aplicación
Ahora vamos a desarrollar una API en la que hagamos disponible cierta información a través de la misma para que pueda consultarse. Lo haremos empleando Python.
Para ello, utilizaremos uno de los frameworks de Python llamado fastAPI, que es el framework por excelencia que se utiliza para temas productivos, dado que es el más completo.
Vamos a ver unos ejemplos sencillos de cómo se utiliza y qué es lo que podemos ver. Luego, profundizaremos en cómo integrarlo dentro para que tenga la capacidad de leer un modelo.
Como siempre, lo primero que haremos es instalar dependencias:
#Instalar dependencias fastAPI
! pip install fastapi [all] pyngrok streamlit
Reiniciamos el kernel y continuamos.
¿Cómo definimos nuestra API? Básicamente hacemos un import, después creamos la aplicación, que va a ser lo que vamos a disponibilizar, y luego instanciamos el objeto de fastAPI.
Ahora mismo lo que haremos es crear un primer endpoint, es decir, un punto de entrada, que nos va a servir para consultar. Entonces, el que implementaremos es un get. El resultado de esta ruta va a ser simplemente un “Hello World”.
#Ejercicio fastAPI de complejidad básica
%%writefile main.py
from fastapi import FastAPI
app = FastAPI ()
@app.get (" / ")
async def root ():
return {"mesage": "Hello World"}
#Ejercicio fastAPI de mayor de complejidad
%%writefile main.py
from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Indentity (BaseModel):
name: str
surname: Optional [str] = None
app = FastAPI ()
@app.get (" / ")
async def root ():
return {"message": "Helo World"}
@app.post ("/testing")
async def testing (id: Indentity):
if id.surname is None:
message = f "Welcome to the API! My name is {id.name}"
else: message = f "Welcome to the API! My name is {id.name} {id.surname}"
return {"message": message}
Ahora, para probarlo, tenemos las celdas siguientes, que sirven para ejecutar un microservicio. El token que hemos puesto lo puedes cambiar si ingresas en ngrok con tu usuario y contraseña y le das a la opción “Your Authtoken”:
Este es el código que podrás modificar. Lo que hace esto es montar un túnel, básicamente, ya que si quieres entrar desde Google en collab, necesitas una IP pública. Por tanto, esta celda lo que hace es permitirte el acceso público a una máquina que es privada.
Así pues, podemos acceder a la máquina que está en Google desde internet.
Levantamos el código:
import nest_asyncio
from pyngrok import ngrok, conf
conf.get_default ().auth_token = "25TtT902JbR7LogkJKxk70jhCz6_4Z6JeyChZAau4gkr2th42"
ngrok_tunnel = ngrok.connect (8000)
print ('Public URL:', ngrok_tunnel.public_url)
nest_asyncio.appy ()
Ejecutamos la siguiente celda:
! uvicorn main:app --port 8000
Lo que veremos es que, si hemos levantado el túnel y ponemos la URL que nos ha dado como resultado en el navegador, con la barra al final, accedemos a la ruta del inicio, que es la que hemos generado, y nos devolverá un mensaje que dice “Hello World”.
Por medio de esta URL podemos acceder al microservicio.
Puede que nos aparezca un mensaje detectando algún elemento malicioso, pero esto es porque la web no tiene certificados:
De todos modos, hacemos clic en “visit this unsafe site” y nos aparecerá el siguiente mensaje, que ha sido el que hemos predeterminado:
Si quieres seguir formándote en alguna de las numerosas temáticas del mundo del Big Data, en KeepCoding te ofrecemos la guía de grandes expertos para que, en unos pocos meses, te conviertas en un gran profesional IT. Échale un ojo al temario del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp y descubre esta formación intensiva e íntegra que catapultará tu carrera. ¡Solicita ahora mismo más información y da el salto que transformará tu futuro!