📄️ Routes
Routes are responsible for mapping all incoming HTTP requests to their controller's functions. When an HTTP request hits the Application, the Endpoints match with the URL pattern and make the call to the corresponding Controller function.
📄️ Requests
Requests mainly serve the user input in the application. They are very useful to automatically apply the Validation and Authorization rules.
📄️ Controllers
Controllers are responsible for validating the request, serving the request data, and building a response. Validation and response happen in separate classes but are triggered from the Controller.
📄️ Actions
Actions represent the Use Cases of the Application (i.e., the actions that can be performed by a user or software in the application).
📄️ Tasks
Tasks are classes that hold shared business logic between multiple Actions across different Containers.
📄️ Models
Models provide an abstraction for data and represent the data in the database. They are the M in MVC.
📄️ Views
Views contain the HTML served by your application. Their main goal is to separate the application logic from the presentation logic. They are the V in MVC.
📄️ Transformers
Transformers, short for Response Transformers, are equivalent to Views but for JSON Responses. They take data and represent it in JSON, transforming Models into Arrays.
📄️ Exceptions
Exceptions are a form of output that should be expected (like an API exception) and well defined. They are a way to handle errors in a well-defined and expected manner.
📄️ Sub-Actions
Sub-Actions are designed to eliminate code duplication in Actions. They allow Actions to share a sequence of Tasks, while Tasks allow Actions to share a piece of functionality.