Corresponds to Modules 5–8 (REST APIs, Spring Data JPA, Spring Security, Configuration).
Run
./mvnw spring-boot:run
Endpoints
- GET /api/public/health — no auth
- GET /api/products — list (auth: user/password or admin/admin)
- GET /api/products/{id} — get one
- POST /api/products — create (JSON body)
- PUT /api/products/{id} — update
- DELETE /api/products/{id} — delete
Auth (HTTP Basic)
- User:
user/password(USER) - Admin:
admin/admin(USER, ADMIN)
Example with curl:
curl -u user:password http://localhost:8080/api/products
curl -u user:password -X POST -H "Content-Type: application/json" -d '{"name":"Laptop","price":999.99,"stock":10}' http://localhost:8080/api/products
Structure
- entity/Product.java — JPA entity
- repository/ProductRepository.java — Spring Data JPA
- service/ProductService.java — transactions, business logic
- controller/ProductController.java — REST CRUD, validation
- exception/GlobalExceptionHandler.java — validation and not-found handling
- config/SecurityConfig.java — SecurityFilterChain, in-memory users