Skip to content

Latest commit

 

History

History
73 lines (49 loc) · 1.95 KB

File metadata and controls

73 lines (49 loc) · 1.95 KB

Spring Boot WebFlux API REST (CRUD + MongoDB)

🌐 Descripción (Español)

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.

🌍 Description (English)

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.


🚀 Características / Features

  • 🔁 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)

⚙️ Tecnologías usadas / Technologies Used

  • Java 22+
  • Spring Boot 3.3.2
  • Spring WebFlux
  • MongoDB
  • Reactive Mongo Driver
  • WebClient
  • Maven

▶️ Cómo ejecutar / How to Run

# 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:run

La API estará disponible en:
http://localhost:8080/api/v2/productos


📬 Endpoints principales (Main Endpoints)

  • GET /api/v2/productos → listar productos
  • GET /api/v2/productos/{id} → obtener producto por ID
  • POST /api/v2/productos → crear producto
  • PUT /api/v2/productos/{id} → editar producto
  • DELETE /api/v2/productos/{id} → eliminar producto
  • POST /api/v2/productos/upload → subir foto + datos

🧠 Autor / Author

Freyder Otálvaro
GitHub
Colombia 🇨🇴