A Hands-On Course
From your first endpoint to a tested, portfolio-ready Library Management API — one tightly-scoped lesson at a time.
@SpringBootApplication, @RestController, the embedded server — from empty folder to a live GET /hello.Book record, return objects and lists, and see how Jackson turns them into JSON; tidy routes with a @RequestMapping base path.@RequestBody, @PathVariable, status codes & ResponseEntity.@Entity, JpaRepository, a PostgreSQL database via Docker Compose, Liquibase migrations, derived queries.@OneToMany/@ManyToOne, owning vs inverse side, and DTOs to avoid leaking entities.@Valid, Bean Validation, and global handling with @ControllerAdvice + ProblemDetail.Pageable/Page, ?page=&size=&sort=, a stable JSON page shape, and a max-page-size safety cap.@EntityGraph.@WebMvcTest + MockMvc, @DataJpaTest + Testcontainers, and full @SpringBootTest.