Esto es un tutorial sobre el curso de FastAPI el cual te servira para familiarizarte con esto de FastAPI y path operation.
¿Que es FastAPI?
Como es su misma web lo dice FastAPI “es un web framework moderno y rápido (de alto rendimiento) para construir APIs con Python 3.6+ basado en las anotaciones de tipos estándar de Python.” Ofrece rapidez, menos errores, intuitivo, fácil, corto, robusto basado en estandares.
¿Que es un Path operation?
Primero debemos saber que es un Path Operations, para eso vamos a dividir las palabras en 2 partes.
Path: es una ruta la cual es la forma de hacer referencia a un archivo o directorio de computadora en un sistema de archivos de un sistema operativo determinado.
ejemplo : https://platzi.com/clases
Operations: Son los métodos utilizados en el protocolo HTTP ( get, post, delete, put…)
Ahora que sabemos que es FastAPI y Path Operation debemos saber como aplicar un path operation en python utilizando FastApi para crear nuestra primera API con FastAPi, asi que vamoa al lio.
Pero antes te voy a explicar las parte de una función que llama al metodo.
#Esto se llama PathOperation decoration@app.get("/") #Esto se llama Path Operation Function defhome():return { "mesaje" : "Hola mundo" }
"""
El codigo se lee de la siguiente manera, todo aquel que entre al path "/"
se ejecutara el metodo get que a su vez ejecuta la
función home() que devuelve el objeto.
"""
Entonces volvemos a la creación de nuestra API con Fast para eso primero vamos a tener que intalar varios framework para el perfecto uso y configuración de nuestra API.
pip install fastapi -> Creamos la API.
pip install uvicorn -> Nos sirve de servidor.
pip install pydantic -> Permite usar modelos los cuales aprovechara FastAPI para crear la API
Creamos nuestro archivo con el nombre main.py
#Pythonfrom typing import Optional
#Pydanticfrom pydantic import BaseModel
#FastAPIfrom fastapi import FastAPI
from fastapi import Body
#iniciamos FastApi
app = FastAPI()
#Creamos un modelo que vamos a usar de pruebas#Tenemos que pasar por parametro a BaseModel una class de pydanticclassItem(BaseModel):
name: str
price: float
#llamada al home de la API@app.get("/") defhome():return { "mensaje" : "Hola mundo" }
#llamada que va path items y que tome el item_id que estamos pasando como Path parameter@app.get("/items/{item_id}")defget_item(
item_id: int,
q: Optional[str] = None):return {"item_id": item_id, "q": q}
#llamada para crear un nuevo item@app.post("/items/new")defcreate_items(items: Items = Body(...)):return items
#llamada para actualizar un item en específico. @app.put("/items/{item_id}")defupdate_item(item_id: int, item: Item):return {"item_name": item.name, "item_id": item_id}
Muy bien ya tenemos nuestra mini API ahora debemos correr el servidor, ¿Como lo hacemos?, vamos a la terminal y ejecutamos el siguiente comando:
uvicorn main:app --reload
Este nos devuelve una ruta, por lo general es http://127.0.0.1:8000 , ahora nos vamos al navegador y colocamos http://127.0.0.1:8000/ esto nos devolvera un Json con { “mensaje”: “Hola mundo” } y listo ya tienes tu primera API utilizando FastAPI felicidades.
Si quieres profundizar mas en FastAPI, validar los query parameters, saber los tipos de datos exoticos y otras cosas super interesante, puedes tomar Curso de FastAPI: Fundamentos, Path Operations y Validaciones.
Hola que tal, cuando corro mi programa me aparece “Error loading ASGI app. Could not import module “main”.” Como podria solucionarlo?