Este proyecto es una API REST desarrollada con Spring Boot y WebFlux. Permite realizar operaciones CRUD completas sobre productos almacenados en MongoDB, incluyendo la carga de fotos, validación de datos y uso de programación reactiva con WebClient funcional.
This project is a REST API built with Spring Boot and WebFlux. It provides full CRUD operations over products stored in MongoDB, including photo uploads, data validation, and reactive programming using functional WebClient.
- 🔁 Programación reactiva con WebFlux
- 📦 CRUD completo para productos
- 🗂️ MongoDB reactivo con
ReactiveMongoRepository - 🖼️ Carga de imágenes (multipart/form-data)
- ✅ Validación de datos (
@Valid) - 🧩 Arquitectura basada en
Handler + RouterFunction - 📂 Separación por capas (DAO, Service, Handler)
- Java 22+
- Spring Boot 3.3.2
- Spring WebFlux
- MongoDB
- Reactive Mongo Driver
- WebClient
- Maven
# 1. Clona el repositorio
git clone https://github.com/freyderdev/spring-boot-webflux-apirest.git
cd spring-boot-webflux-apirest
# 2. Ejecuta MongoDB localmente en el puerto 27017
# 3. Corre la aplicación
./mvnw spring-boot:runLa API estará disponible en:
http://localhost:8080/api/v2/productos
GET /api/v2/productos→ listar productosGET /api/v2/productos/{id}→ obtener producto por IDPOST /api/v2/productos→ crear productoPUT /api/v2/productos/{id}→ editar productoDELETE /api/v2/productos/{id}→ eliminar productoPOST /api/v2/productos/upload→ subir foto + datos
Freyder Otálvaro
GitHub
Colombia 🇨🇴