Go clean architecture RESTful API
- A server to handle web requests
- Configuration parser
- Container for dependency injection
- Router
- Controllers
- Error handler
- Logger
- Request mapper
- Response mapper and a Transformer
- Application Metrics
- Parse configurations
- Resolve container
- Initialize router
- Run server
+ -------- + + ------- +
| RESPONSE | | REQUEST |
+ -------- + + ------- +
/\ ||
|| \/
|| + ------------ + => + ---------- +
|| | Router | | Middleware |
|| + ------------ + <= + ---------- +
|| ||
|| ||
+ --------------------------- + ||
| Transformer | Error Handler | ||
+ --------------------------- + ||
/\ ||
|| \/
+ -------------- + => + --------- +
| Controller | | Validator |
+ -------------- + <= + --------- +
/\ ||
|| \/
+ -------------- +
| Use Case |
+ -------------- +
/\ ||
|| \/
______________________________________________
+ ------- + + ---------- + + ------- +
| Adapter | | Repository | | Service |
+ ------- + + ---------- + + ------- +
/\ || /\ || /\ ||
|| \/ || \/ || \/
+ ------- + + ---------- + + ------- +
| Library | | Database | | APIs |
+ ------- + + ---------- + + ------- +