Skip to content

Nimbus-commints/API_MET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Pronósticos 🌡️

Demostracion de un REST API con FastAPI para el procesamiento, almacenamiento y distribución de datos meteorológicos en tiempo real, pronosticados e históricos.
La data esta siendo obtenida del API Open-Meteo. Lo ideal es tener data propia obtenida mediante estaciones y modelos(pronósticos) para hostearlos en el servidor.

Tecnologías

  • FastAPI — Framework web async de alto rendimiento
  • Python — Lenguaje principal
  • SQLite / SQLAlchemy — Base de datos y ORM
  • Open-Meteo API — Fuente de datos meteorológicos (sin API key)
  • Pydantic — Validación de datos y schemas

Estructura del Proyecto

api-pronosticos/
├── app/
│   ├── __init__.py
│   ├── main.py             # Punto de entrada de FastAPI
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py       # Configuración de la app
│   │   └── database.py     # Conexión a base de datos
│   ├── models/
│   │   ├── __init__.py
│   │   └── weather.py      # Modelos SQLAlchemy
│   ├── schemas/
│   │   ├── __init__.py
│   │   └── weather.py      # Schemas Pydantic
│   ├── routers/
│   │   ├── __init__.py
│   │   ├── weather.py      # Endpoints de tiempo actual
│   │   ├── forecast.py     # Endpoints de pronóstico
│   │   └── historical.py   # Endpoints de datos históricos
│   └── services/
│       ├── __init__.py
│       ├── weather_service.py   # Lógica de negocio
│       └── open_meteo.py        # Cliente de Open-Meteo
├── tests/
│   ├── __init__.py
│   ├── test_weather.py
│   └── conftest.py
├── data/                    # Base de datos SQLite
├── requirements.txt
├── .gitignore
└── README.md

Endpoints

Timepo Actual

Método Ruta Descripción
GET /api/v1/weather/current Tiempo actual por coordenadas
GET /api/v1/weather/current/{city} Tiempo actual por ciudad

Pronóstico

Método Ruta Descripción
GET /api/v1/forecast/daily Pronóstico diario (hasta 16 días)
GET /api/v1/forecast/hourly Pronóstico horario (hasta 48h)

Datos Históricos

Método Ruta Descripción
GET /api/v1/historical/daily Datos históricos diarios
GET /api/v1/historical/stats Estadísticas del período

Sistema

Método Ruta Descripción
GET / Info de la API
GET /health Health check
GET /docs Documentación Swagger

Instalación

pip install -r requirements.txt

Ejecución

uvicorn app.main:app --reload --port 8000

La documentación interactiva estará disponible en: http://localhost:8000/docs

Ejemplo de Uso

# Clima actual en Ciudad de México
curl "http://localhost:8000/api/v1/weather/current?latitude=19.43&longitude=-99.13"

# Pronóstico 7 días en Madrid
curl "http://localhost:8000/api/v1/forecast/daily?latitude=40.42&longitude=-3.70&days=7"

# Datos históricos
curl "http://localhost:8000/api/v1/historical/daily?latitude=-34.60&longitude=-58.38&start_date=2024-01-01&end_date=2024-12-31"

Autor

Red Nimbus - A.R
Proyecto de portafolio — Meteorología + Backend Development

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages