Devolver registros con FastAPI y MySQL Connector en Python

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 fastapi

Instalar el conector de mysql para python

pip install mysql-connector-python

Y falta instalar Uvicorn , es el servidor donde va a correr el script.

pip install uvicorn

Base 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:app

Donde 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"}]

Leave a Reply

Your email address will not be published. Required fields are marked *

Discover more from Evilnapsis

Subscribe now to keep reading and get access to the full archive.

Continue reading