FastAPI es un framework para crear APIs en Python, es un framework que sirve como backend para crear diversas aplicaciones con la facilidad que brinda el lenguaje Python
En este ejemplo vamos a conectarnos a una base de datos de MySQL usando python y FastAPI y vamos a necesitar instalar estas 2 utilidades usando el comando pip.
Instalar librerias
Instalar FastAPI, el framework y sus funciones
pip install fastapiInstalar el conector de mysql para python
pip install mysql-connector-pythonY falta instalar Uvicorn , es el servidor donde va a correr el script.
pip install uvicornBase de datos
En la base de datos tenemos una simple tabla de categorias y los insert los vamos a hacer manualmente.
create table category(
id int not null auto_increment primary key,
name varchar(255)
);
insert into category(name) value("Categoria 1");
insert into category(name) value("Categoria 2");
insert into category(name) value("Categoria 3");El nombre de la base de datos sera library2, pero ustedes le pueden poner el nombre que quieran.
from fastapi import FastAPI
import mysql.connector
# Configuracion para conectarse a la base de datos
config = {
"user":"root",
"password":"",
"host":"localhost",
"database":"library2"
}
app = FastAPI()
# Ruta de llamada a la API
@app.get("/categorias/")
async def root():
res = {}
data = []
try:
# Nos conectamos a la base de datos
cnx = mysql.connector.connect(**config)
cursor = cnx.cursor()
# Ejecutamos una consulta SQL select all
cursor.execute("select * from category")
all_rows = cursor.fetchall()
# recorremos los resultados
for row in all_rows:
# agregamos los valores a la lista
data.append( {"id":row[0], "name":row[1] })
# regresamos los resultados
res = data
except mysql.connector.Error as err:
# en caso de que sea un error devolvemos el mensaje de error
res = {"error": err}
# devolvemos los datos
return res
Este es el codigo de la aplicación, creamos la ruta /categorias/ al ejecutar esta ruta desde el navegador o desde CURL entonces nos va a devolver la lista de categorias.
Si instalamos todas las librerias que describi en el inicio entonces ya estamos listo para ejecurtar, en mi caso guarde el archivo como myfastapi1.py
Ejecutar el script
Ahora vamos a ejecutar el script para esto usaremos uvicorn, ejecutamos el comando.
uvicorn myfastapi1:appDonde myfastapi1 es el nombre del archivo y app es la instancia de fastapi.
Uvicorn nos va a crear un servidor que normalmente apunta a http://127.0.0.1:8000/ y para ejecutar la ruta que creamos tenemos que poner http://127.0.0.1:8000/categorias/ para ver los resultados en el navegador.
Y nos devuelve como resultado el JSON con los resultados.
[{"id":3,"name":"Categoria 1"},{"id":4,"name":"Categoria 2"},{"id":5,"name":"Categoria 3"}]