This module introduces REST API development with Spring Boot while preserving the architecture boundaries established in Course 00.
The focus is to connect HTTP endpoints to use cases without moving business rules into controllers.
The project implements a task management API with CRUD operations:
- create task
- list tasks
- get task by id
- update task
- delete task
src/main/java/dio/taskmanager/domain- Domain model and contracts.
src/main/java/dio/taskmanager/application- Use cases and input/output models.
src/main/java/dio/taskmanager/infrastructure- HTTP controller, exception mapping, and technical adapters.
TaskControllerexposes/tasksendpoints.- Request validation uses
@Validand Jakarta Validation. GlobalExceptionHandlermaps domain/application errors to HTTP responses.
TaskControllerTestgenerates snippets inbuild/generated-snippets.- Asciidoctor assembles documentation from tested behavior.
Common architecture concepts are documented in the root README:
- DDD layers
- Class vs record
- Strong typed identifiers
- Repository pattern
- Use cases and Clean Architecture
- Docker Compose support
./gradlew test
./gradlew asciidoctor
./gradlew bootRunUseful paths:
build/generated-snippetssrc/docs/asciidoc/index.adoc
- Educational module focused on web adapters and API boundaries.
- In-memory persistence keeps the module focused on HTTP and use case flow.