This repository demonstrates multiple implementations of REST APIs for a simple ToDo application, each following a different architectural style within a layered architecture pattern.
Each API variant is self-contained, with its own solution (.sln) file to enable independent development, testing, and comparison.
- Email: [email protected]
- GitHub: Vishwam
- LinkedIn: Vishwa Kumar
Vishwa is the primary architect of the ToDoApp, responsible for the architecture and implementation of these features.
- Shared data access library using Entity Framework Core (EFC) with SQLite.
- Includes
DbContext, entity definitions, and migration setup. - Used as a common data layer across all API implementations.
- Traditional ASP.NET Core MVC-based API.
- Uses controller classes with
[ApiController]and standard routing. - Good for teams familiar with conventional ASP.NET Web API development.
- Uses ASP.NET Core Minimal APIs.
- Lightweight and concise, perfect for microservices or smaller APIs.
- Demonstrates handler functions with route mappings.
- Implements endpoint-per-file pattern (like Carter or similar).
- Each endpoint is a separate class for better separation of concerns.
- Great balance between structure and simplicity.
- Built using the FastEndpoints library.
- Encourages strong typing and clean separation of input, logic, and response.
- Ideal for high-performance, maintainable APIs.
Each API project:
- Has its own solution file (.sln).
- Can be run independently via CLI or Visual Studio.
- Shares the same underlying SQLite data layer to enable consistent comparison.
- .NET SDK 9+
- Visual Studio 2022 or VS Code
- EF Core tools (if working with migrations)
- Help developers understand different REST API implementation patterns.
- Enable experimentation and benchmarking.
- Provide a base for extending to Clean Architecture or CQRS in the future.
- Add MediatR-based APIs
- Add Clean Architecture sample
- Add Swagger/OpenAPI for all variants
This project is licensed under the MIT License.