Skip to content

Reactive REST API built with Spring Boot, WebFlux, and MongoDB. Includes full CRUD, photo uploads, and functional routing.

Notifications You must be signed in to change notification settings

freyderdev/spring-boot-webflux-apirest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring Boot WebFlux API REST (CRUD + MongoDB)

🌍 Description

This project is a RESTful API built with Spring Boot and WebFlux. It implements full CRUD operations over products stored in MongoDB, supports photo uploads via multipart requests, and follows a fully reactive architecture using functional handlers and routes.


🚀 Features

  • 🔁 Reactive programming with Spring WebFlux
  • 📦 Full CRUD for products
  • 🗂️ Reactive MongoDB with ReactiveMongoRepository
  • 🖼️ Multipart file upload support
  • ✅ Data validation using @Valid
  • 🧩 Functional routing with Handler + RouterFunction
  • 📂 Clean architecture with DAO, Service, and Handler layers

⚙️ Technologies Used

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

▶️ How to Run

# 1. Clone the repository
git clone https://github.com/freyderdev/spring-boot-webflux-apirest.git
cd spring-boot-webflux-apirest

# 2. Make sure MongoDB is running locally on port 27017

# 3. Run the app
./mvnw spring-boot:run

The API will be available at:
http://localhost:8080/api/v2/productos


📬 Main Endpoints

  • GET /api/v2/productos → list all products
  • GET /api/v2/productos/{id} → get product by ID
  • POST /api/v2/productos → create new product
  • PUT /api/v2/productos/{id} → update product
  • DELETE /api/v2/productos/{id} → delete product
  • POST /api/v2/productos/upload → upload photo and data

🧠 Author

Freyder Otálvaro
GitHub
Colombia 🇨🇴

About

Reactive REST API built with Spring Boot, WebFlux, and MongoDB. Includes full CRUD, photo uploads, and functional routing.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages