¿Qué es una API?

Una API (Interfaz de Programación de Aplicaciones) es un conjunto de reglas y protocolos que permite que dos aplicaciones de software se comuniquen entre sí.
¿Por qué surgieron las APIs?
Antes de las APIs modernas, los sistemas eran «monolíticos». Esto significa que la base de datos, la lógica del servidor y la interfaz gráfica que veía el usuario estaban mezclados en un solo bloque de código.
El problema:
Si querías hacer una versión web y luego una versión móvil de tu sistema, tenías que reescribir casi todo, o conectar la app móvil directamente a la base de datos (lo cual es muy inseguro y propenso a errores).
La solución:
Separar la presentación (el frontend) del almacenamiento (el backend y base de datos). Las APIs nacieron como el «puente» universal. Gracias a esto, hoy en día puedes tener una web, una app de Android y un programa de escritorio conectados a la misma base de datos a través de la misma API.
Entonces … ¿Qué es una API REST?
REST (Representational State Transfer) no es un lenguaje de programación ni un software, es un estilo de arquitectura; un conjunto de «buenas prácticas» sobre cómo deben comunicarse los sistemas en internet.
Cuando decimos que una API es «RESTful» o es una «API REST», significa que cumple reglas como:
- Usa el protocolo HTTP: El mismo que usan los navegadores web (las direcciones que empiezan con http:// o https://).
- No guarda estado (Stateless): Cada petición que el cliente envía al servidor debe contener toda la información necesaria para ser entendida. El servidor no «recuerda» peticiones anteriores.
- Maneja recursos: En REST, todo es un recurso (un usuario, un servidor, un producto).

Conceptos Técnicos Clave
Para construir y consumir una API, necesitamos entender su vocabulario básico:
Endpoint (Punto de acceso)
Es la URL específica donde vive un recurso. Piensa en el endpoint como la dirección exacta de una casa a la que le vas a enviar un paquete.
#Ejemplo
http://tu-servidor.com/api/servidoresMétodos HTTP (Los Verbos)
Cuando hacemos una petición a un Endpoint, debemos decirle al servidor qué queremos hacer con ese recurso. Para eso usamos los métodos HTTP (que equivalen a las operaciones CRUD en bases de datos):

El Formato JSON
Cuando la API responde, necesita enviar la información en un formato de texto universal que cualquier lenguaje (C#, Python, JavaScript) pueda entender. El estándar actual es JSON (JavaScript Object Notation).
#Ejemplo:
{
"id": 1,
"nombre": "Servidor Producción",
"ip_address": "192.168.1.100",
"estado": "Activo"
}Códigos de Estado (Status Codes)
Es la forma en que el servidor te dice cómo le fue con tu petición usando un número de 3 dígitos:

Laboratorio en Clase
Realizaremos el despliegue de 3 endpoints básicos mediantes Fast Api con Python y consumiremos estos endpoint desde Front mediante Java Script, validando los conceptos aprendidos en la sesión.
Arquitectura del Proyecto

Requisitos:
- Python 3.12 o superior + pip
- Visual Studio Code
- Navegador actualizado.
Paso 1
Descargar el proyecto y reconocer el contenido. En este paso el estudiante debera revisar detenidamente el proyecto completo, analizarlo e investigar, si es necesario, como parte de su aprendizaje. Bajo ningun contexto el estudiante deberá simplemente ejecutar los comandos sin detenerse a analizar el motivo/función de cada paso, se evaluará detalladamente esto en clase.

Paso 2
Ejecutar cmd dentro del proyecto, tal como se demostró en la sesión y ejecutar la instalacion de las librerias y dependencias detalladas en el archivo requirements.txt.

pip install -r requirements.txt
Paso 3
Ejecutar el despliegue del Proyecto.
python -m uvicorn Api.main:app --host 127.0.0.1 --port 8000 --reload
Paso 4
Ingresar mediante Navegador

Endpoints

