📄️ Project Structure
Understanding the default project structure in Vaden is key to maintaining clean and scalable applications. Below is an overview of how a typical Vaden project is organized.
📄️ Controller
A @Controller() in Vaden defines a class that handles HTTP routes. It's one of the core building blocks of the framework.
📄️ Components
Vaden provides a powerful and intuitive dependency injection (DI) system inspired by frameworks like Spring Boot. It makes use of annotations to register and inject dependencies throughout your application in a modular and scalable way.
📄️ Middleware
Vaden offers a powerful middleware system that builds on top of the Shelf pipeline. It allows request/response transformations, authentication, logging, header manipulation, and more — globally or per route.
📄️ Data Transfer Object (DTO)
Vaden uses the concept of DTOs (Data Transfer Objects) to safely transport data between client and server. DTOs are tightly integrated with the serialization system known as DSON, which handles converting objects to and from JSON.
📄️ Exception Handling
Vaden includes a powerful exception handling mechanism inspired by Spring Boot’s @ControllerAdvice. It allows you to define global error handling logic in a centralized and reusable way.