Laboratorio2 Fastapi

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

LABORATORIO #2 – INFRAESTRUCTURA

En el siguiente documento se hace mención a la configuración de dos servicios de seguridad y filtro en


cualquier entorno empresarial básico. La intención es llevar a cabo la instalación e indicar la utilidad de
dichos servicios considerando:

• Uso de máquina virtual en servicio AZURE como servidor.


• Uso de motor de base de datos para administración y gestión de registros.
• Manipulación de registros mediante API programada en Python.

Conforme con la guía de implementación del servicio, considerar las diferentes definición y temas
consultados por ustedes para contestar las siguientes preguntas.

• En los últimos años el lenguaje Python ha tomado bastante más relevancia en el campo de la
Inteligencia Artificial / Machine Learning y en la programación Backend. Mencione al menos
tres razones por las que ha sucedido este evento y explique desde su punto de vista por qué.
• En las empresas de desarrollo de software se han inclinado por aplicar el desarrollo de software
mediante FULL-STACK (FrontEnd / BackEnd). Explique las capas que componen el desarrollo
mediante este método y como afecta cada una de ellas al producto terminado.
• Mencione por qué FastApi es una solución adecuada para el desarrollo de Microservicios.
• Defina cual es el ROL que ha tenido el uso del formato JSON para intercambio de datos en
microservicios.
• Acorde a lo anterior, explique con sus palabras y mediante una posición profesional, cómo el uso
del lenguaje Python, el desarrollo de BackEnd y la implementación de un API son adecuadas para
el desarrollo del proyecto mencionado a continuación en el apartado de contexto.

Estas preguntas deberán ser contestadas mediante el uso de las correspondientes citas de consulta
conforme a los criterios de evaluación consignados en el aula en los apartados de LABORATORIO y
SUSTENTACIÓN. Por lo anterior se agradece consultar dichos criterios en la plataforma
correspondiente.

CONTEXTO

El curso de Infraestructura TIC, tiene por objetivo el desarrollo de un proyecto para el ensamblaje,
codificación e implementación de una solución mediada por dispositivos basados en tecnología Arduino
y software API para la adquisición de datos asociados a diversos aspectos relacionados con la
automatización y el IOT.

Por lo anterior se ha seleccionado las siguientes herramientas como medio para conseguir este objetivo.

• Desarrollo de aplicación backend mediante FASTAPI y consulta a base de datos mediante uso de
librería PSYCOPG2.
• Servidor implementado en máquina virtual con motor PostgreSQL en donde se contiene la base
de datos.
• Página web desarrollada mediante el uso de HTML y JavaScript, para el consumo de los datos
mediante el uso de consultas disponibles mediante FASTAPI.
PRÁCTICA – BASE DE DATOS Y CONFIGURACIÓN DE
SERVIDOR

A continuación, por favor observar los vídeos de los siguientes enlaces (gracias al auspicio del Semillero
de Software Libre y Desarrollo Web – WEB-IN).

Configuración de servidor y motor de bases de datos. Enlace.

A continuación, se muestra parte del modelo entidad relación con el que se trabajará el presente
laboratorio. El modelo completo se desarrolló en una actividad anterior al laboratorio en clase. Por favor
usar este modelo para realizar el presente laboratorio. El modelo resultante deberá tener un total de 6
tablas con sus correspondientes relaciones. MOSTRAR EVIDENCIA DE MODELO ENTIDAD
RELACION CONSTRUIDO.

Acorde al modelo entidad relación.

• ¿Cuáles son las instrucciones DDL para crear las tablas y establecer sus relaciones?
• Mediante el uso de instrucciones DML insertar al menos 1 registro en la tabla dispositivo, 3 en la
tabla sensor y 3 lecturas por cada uno de los sensores registrados. En las demás tablas lo
estipulado en la actividad anterior al laboratorio.
• MOSTRAR EVIDENCIAS DE EJECUCIÓN DE LAS INSTRUCCIONES.

PRÁCTICA – CREACIÓN Y USO DE API

Seguir el siguiente procedimiento y posteriormente explicar.

1. Instalación de Proyecto y Librerías.

Llevar a cabo la instalación de Python teniendo en cuenta las siguientes opciones.

• Descargar el instalador de Python https://www.python.org/ftp/python/3.12.0/python-3.12.0-


amd64.exe
• Usar las opciones mostradas en la imagen.
• Dejar las opciones de la siguiente ventana
como están.
• A continuación, seleccionar las opciones como
en la siguiente imagen y proceder a instalar.

Una vez instalado el lenguaje abrir una consola de


comandos (tipo CMD no usar PowerShell) ejecutar los
siguientes comandos, y ubicarse en el directorio donde
se vaya a crear la carpeta del proyecto de “weatherapi”
(este nombre debe ser reemplazado por el proyecto a
presentar en el laboratorio) que será la encargada de
manipular los datos de la base de datos.

pip install virtualenv


virtualenv <nombre de proyecto>
Cd <nombre de proyecto>
Scripts\activate.bat

Pip install uvicorn


Pip install fastapi
Pip install psycopg2
A continuación, ya teniendo preparado el entorno del API, descargar
VSCODE y con éste abrir la carpeta donde se creó el proyecto de FASTAPI
(se puede buscar la carpeta del proyecto y hacer clic derecho sobre este y seleccionar “abrir con vscode”).

Crear un nuevo archivo y asignar el


nombre de “main.py”

En el archivo recién creado usar el siguiente código que sirve tanto para realizar SELECT (consultas)
como para INSERT (agregar registros).

# coding=utf-8

#Importar librerías
import psycopg2
from psycopg2.extras import RealDictCursor
from fastapi import FastAPI

# variables de conexión a base de datos


DB_HOST = "<dirección del servidor>" # Dirección del servidor
DB_NAME = "<nombre de proyecto>"
DB_USER = "<nombre de proyecto>"
DB_PASWD = "123456"

#Conectar a la base de datos


cc = psycopg2.connect(database=DB_NAME,user=DB_USER,password=DB_PASWD,host=DB_HOST,port=5432)
#Cursor para ejecutar SQL
cursor_obj = cc.cursor(cursor_factory=RealDictCursor)

#Creación de objeto API


app = FastAPI()

#Definición de rutas
@app.get("/")
async def root():
return {"message": "It's Working"}

@app.post("/insert/dispositivo")
async def insert_row(id: int, w: str, n: str):
sql = "INSERT INTO dispositivo (id, w, n) VALUES ("+\
str(id) + ",'" +\
w + "','"+\
n + "')"
cursor_obj.execute(sql)
cc.commit()

@app.post("/insert/sensor")
async def insert_row(id: int, referencia: str, descripcion: str, dispositivo_id):
sql = "INSERT INTO sensor (id, referencia, descripcion, dispositivo_id) VALUES (" +\
str(id) + ",'"+\
referencia + "','" +\
descripcion + "'," +\
dispositivo_id + ")"
cursor_obj.execute(sql)
cc.commit()

@app.post("/insert/lectura")
async def insert_row(id: int, fechahora: str, valor: str, sensor_id):
sql = "INSERT INTO lectura (id, fechahora, valor, sensor_id) VALUES (" + \
str(id) + ",'" +\
fechahora + "'," +\
valor + "," +\
sensor_id + ")"
cursor_obj.execute(sql)
cc.commit()

@app.get("/select")
async def read_items(table: str):
sql = "SELECT * FROM " + table + " ORDER BY id"
cursor_obj.execute(sql)
rows = cursor_obj.fetchall()
#print(rows)
return rows

Complementar para realizar las dos instrucciones DML faltantes que son DELETE (Borrar) y UPDATE
(modificar / actualizar) por cada una de las tablas indicadas en la actividad anterior al laboratorio. Es
decir, debe haber 4 rutas por cada tabla para un total de 24 rutas en total.

Realizar las pruebas ejecutando en la consola de VSCODE el siguiente comando:

scripts\activate.bat
uvicorn main:app --reload --port=3000

A continuación, usar un navegador y usar la siguiente url

http://<dirección del servidor>:3000/docs

Donde aparecerá el tester de FastAPI y allí realizar las pruebas de funcionamiento de las rutas
programadas, cada una de ellas con la función inicialmente para insertar y consultar registros acorde al
código anterior.

Se hace clic en la ruta a probar, se presiona el botón “Try Out” se insertan los valores si es necesario y
en la parte inferior de la ventana se puede observar el resultado obtenido.
En este caso se hace la prueba con la ruta /select para obtener los registros
de la tabla sensor.

Llevar a cabo este mismo procedimiento con las rutas creadas y explicadas diciendo qué se hizo y por
qué se hizo de esta forma, por el grupo de trabajo y ENVIAR LAS EVIDENCIAS
CORRESPONDIENTES de las pruebas con algún distintivo que identifique al grupo en la imagen o lo
que sea que se adjunte al documento de laboratorio. La evidencia de fe de la realización de la actividad.

También podría gustarte