Architecture
The framework is built on top of Spring Boot, Spring MVC, Spring Data JPA, and Spring Security, providing a robust suite of tools for developing REST APIs. The core components are as follows:
Controller Layer
This layer consists of generic controllers that provide common implementation for different types of requests:
GenericListController
GenericCreateController
GenericDeleteController
GenericRetrieveController
GenericUpdateController
GenericCommandController
GenericQueryController
These controllers help in structuring API endpoints for CRUD operations in a reusable and modular way.
Service Layer
This layer contains two service classes operating as business logic:
CommandService – Handles commands related to modifications (Create, Update, Delete).
QueryService – Handles data retrieval operations.
Utility Layer
This layer provides tools used in the service layer:
DtoManager – Manages Data Transfer Objects.
SwaggerSchemaGenerator – Generates API documentation using Swagger.
EntityBuilder – Helps construct entity objects.
SpecificationsBuilder – Builds query specifications dynamically.
FilterSet and Serializer:
FilterSet – Defines filtering rules for querying data.
Serializer – Handles object serialization and deserialization.
The entire structure is built upon Spring Framework, leveraging its powerful features for dependency injection, security, and configuration.