Skip to content

API REST en Spring Boot que permite consultar el clima actual e histórico de una ubicación usando WebClient y la API de Visual Crossing. Implementa manejo de errores personalizado, validaciones, cacheo con Redis y limitación de peticiones con Bucket4j. La arquitectura sigue buenas prácticas y separación de capas.

Notifications You must be signed in to change notification settings

kgonzagao/WeatherAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WeatherAPI

WeatherAPI es una API REST desarrollada con Spring Boot que permite consultar el clima actual e histórico de una ubicación específica utilizando la API de Visual Crossing. El proyecto implementa manejo de errores personalizado, validaciones, cacheo con Redis y limitación de peticiones mediante Bucket4j.

Realmente esta práctica fue hecha con fines educativo por lo cual, se puede encontrar puntos a mejorar.

Este proyecto es una práctica realizada a partir de la página roadmap.sh

Características

  • Consulta de clima actual por dirección.
  • Consulta de clima histórico por dirección y fecha.
  • Manejo de errores personalizado.
  • Validación de datos de entrada.
  • Cacheo de respuestas usando Redis.
  • Limitación de peticiones (rate limiting) con Bucket4j.
  • Arquitectura limpia y separación de capas (controladores, servicios, DTOs, excepciones).

Tecnologías utilizadas

  • Java 21
  • Spring Boot 3.5.0
  • Spring WebFlux
  • Spring Data Redis
  • Bucket4j
  • Lombok
  • Maven

Instalación

  1. Clona el repositorio:

    git clone https://github.com/kgonzagao/WeatherAPI.git
    cd WeatherAPI
  2. Configura las variables de entorno
    Crea un archivo application.properties en src/main/resources con tus claves de API y configuración de Redis:

    env.api_key=TU_API_KEY
    env.api_url_base=https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/
    spring.redis.host=localhost
    spring.redis.port=6379
    
  3. Compila el proyecto:

    mvn clean install
  4. Ejecuta la aplicación:

    mvn spring-boot:run

Uso

Obtener clima actual

GET /weather/current?address=Ciudad,País

Obtener clima histórico

GET /weather/historical?address=Ciudad,País&date=YYYY-MM-DD

Licencia

Este proyecto está bajo la Licencia Apache 2.0.

About

API REST en Spring Boot que permite consultar el clima actual e histórico de una ubicación usando WebClient y la API de Visual Crossing. Implementa manejo de errores personalizado, validaciones, cacheo con Redis y limitación de peticiones con Bucket4j. La arquitectura sigue buenas prácticas y separación de capas.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages