.NET 9 REST API project demonstrating Layered Architecture, Minimal API, Entity Framework Core, and Token-based Authentication.
- .NET 9
- Layered Architecture (Api, Service, Data)
- Entity Framework Core with SQLite
- S.O.L.I.D Principles applied
- Minimal API alongside Controllers
- JWT Authentication
- Soft Delete (IsDeleted)
- Global Exception Handling
- Serilog Logging
graph TD
Client --> API
API --> Service
Service --> Data
Data --> Database(SQLite)
-
Prerequisites
- .NET 9 SDK
- SQLite
-
Setup
git clone <repo> cd DotnetHW dotnet restore
-
Database Migrations are already created. To apply them:
cd ECommerceApp dotnet ef database update --project ECommerceApp.Data --startup-project ECommerceApp.Api -
Run
dotnet run --project ECommerceApp.Api
API will run at
http://localhost:5030(or similar). Swagger UI:http://localhost:5030/swagger
POST /api/Auth/loginPOST /api/Auth/register
GET /api/v1/minimal/usersGET /api/v1/minimal/users/{id}POST /api/v1/minimal/usersPUT /api/v1/minimal/users/{id}DELETE /api/v1/minimal/users/{id}
GET /api/ProductsGET /api/Products/{id}POST /api/Products(Auth required)PUT /api/Products/{id}(Auth required)DELETE /api/Products/{id}(Auth required)
POST /api/Orders(Auth required)GET /api/Orders/user/{userId}
All responses follow:
{
"success": true,
"message": "Success",
"data": { ... }
}