PROJECTS / 2024
NLW Journey API
A .NET API written with real DDD, not slide-deck DDD. Entity Framework, dynamic validation through FluentValidation, and Swagger for whoever consumes it.
OVERVIEW
An API for planning trips: register a trip and the activities that belong to it. Built during Rocketseat's NLW, it was a testing ground for Clean Code, SOLID and Domain-Driven Design in a project small enough to see every decision.
CONCEPT
Domain-Driven Design. The domain — trips and activities — sits at the center, isolated from the database and from HTTP. Validation rules are declarative with FluentValidation instead of a cascade of ifs, and errors become custom exceptions handled by a single filter, so every error response has the same shape.
FEATURES
- Registering trips and each trip's activities
- Declarative validation with FluentValidation
- Custom exceptions with a global error filter
- Interactive documentation with Swagger
HOW IT WORKS
Persistence uses Entity Framework with SQLite. Each request goes through the use case's validation before touching the database; if something fails, the exception bubbles up to the filter, which returns a standardized response.
STACK
- CSharp
- DotNet