2025-04-27 18:12:55
Desarrollar una API para listar empresas registradas por sectores como Tecnología, Salud, Agricultura, entre otros.
La API debe permitir:
Consultar todas las empresas.
Filtrar empresas por sector económico.
La solución debe estar alojada en la nube (Azure).
La base de datos debe escalar con facilidad.
Subes el proyecto a GitHub.
El backend debe ser desarrollado en Python.
Azure Cosmos DB: Base de datos NoSQL distribuida globalmente.
Azure Web App: Servicio de hospedaje para aplicaciones web.
Python + Flask: Micro-framework ligero para desarrollar la API REST.
Particionamiento: Uso de particiones lógicas en Cosmos DB para optimizar consultas.
Backend API: Desarrollado con Flask, desplegado en Azure Web App.
Base de datos: Azure Cosmos DB, particionada por el campo sector.
Escalabilidad: Cosmos DB Serverless para optimización de costos.
Particiones: Cada empresa tiene un campo sector. Cosmos DB agrupa internamente los datos por este valor, lo que permite buscar solo en la partición correcta sin recorrer toda la base.
Consultas Eficientes: Gracias al uso de particiones, las consultas son rápidas y económicas, ya que no se necesita escanear todas las particiones.
Escalabilidad: Si más empresas se agregan, Cosmos DB ajusta automáticamente los recursos necesarios.
app.py
from flask import Flask, jsonify
from azure.cosmos import CosmosClient
app = Flask(__name__)
# CONFIGURACION COSMOSDB
endpoint = "https://tu-cosmos-db.documents.azure.com:443/"
key = "tu-key"
client = CosmosClient(endpoint, key)
db_name = "EmpresasDB"
container_name = "EmpresasPorSector"
database = client.get_database_client(db_name)
container = database.get_container_client(container_name)
# ENDPOINT PARA LLAMAR DATOS
@app.route("/empresas", methods=['GET'])
def all_data():
query = "SELECT * FROM c"
items = list(container.query_items(query=query,
enable_cross_partition_query=True))
return jsonify(items), 200
if __name__ == '__main__':
app.run()
Recuerda:
requirements.txt
Flask
azure-cosmos
gunicorn
Creas una Web App en Azure.
Azure hace el despliegue automático y tu API queda pública
API disponible en: https://api-empresas-gob.azurewebsites.net/empresas
Consultas rápidas por sector: /empresas/
Al finalizar este ejercicio, deberías ser capaz de:
Listar datos desde una base NoSQL.
Crear endpoints personalizados para filtrar datos.
Crear una base de datos y contenedor particionado.
Insertar datos y realizar consultas optimizadas.
Subir tu API a Azure Web App.
Configurar el entorno para producción.
Desde la idea inicial, pasando por el desarrollo, hasta el despliegue.
Simular un proyecto consultor-cliente con una necesidad real.
Crear APIs similares para otras entidades o sectores.
Aprovechar Azure para automatizar, escalar y gestionar aplicaciones modernas.
No necesitas experiencia previa en Azure: la práctica te guía paso a paso.
Aprendes a usar herramientas reales que son demandadas en el mundo laboral.
Construyes una base sólida para explorar temas más avanzados como:
CI/CD en Azure DevOps.
Seguridad con Azure Active Directory.
Integración de inteligencia artificial en APIs.
Desarrolladores backend que desean aprender sobre despliegue en la nube.
Consultores de TI que buscan soluciones escalables para clientes.
Estudiantes de programación que quieren experiencia práctica.
Emprendedores tecnológicos que desean prototipar APIs de forma rápida y eficiente.