Api Template based on Clean Architecture and all possible best practices
This template should address the folowing concers:
- Organize code in layers using Clean Architecture concepts.
- Support multiple persistence mechanisms(SQL Server, Oracle, SQLite, etc) using unit or work abstraction.
- Structured logging to capture important information.
- Handling all exceptions and logging it.
- Creating standards for HTTP Responses.
- Balance between RESTFul theory and business logic.
- User/Clients Authentication and Authorization.
- Enabling easy unit testing in all components.
- Database versioning control via code using FluentMigrator.
- Health check monitoring.