Spring Boot
Pengenalan Spring Boot
Apa itu Spring Boot, cara instalasi lewat Spring Initializr, dan cara menjalankan project pertamamu.
@RestController & @GetMapping Dasar
Mendaftarkan endpoint lewat class ber-annotation @RestController, method-nya ditandai @GetMapping.
@PathVariable: Route Parameter
Menerima parameter dinamis dari URL lewat annotation @PathVariable.
@RequestParam: Query String
Mengambil data dari query string lewat annotation @RequestParam.
@RequestBody & DTO
Membaca body JSON request lewat annotation @RequestBody, dipetakan otomatis ke class DTO.
Response: ResponseEntity
Mengatur status code dan header response secara eksplisit lewat ResponseEntity.
Dependency Injection: @Autowired & Constructor Injection
Menyuntikkan Service ke Controller lewat constructor, cara yang paling direkomendasikan.
@Service & @Repository: Layering
Memisahkan tanggung jawab lewat tiga layer: Controller (HTTP), Service (logika bisnis), Repository (akses data).
Spring Data JPA: @Entity & Repository
Mendefinisikan tabel lewat @Entity, dan Repository interface yang otomatis punya method CRUD tanpa implementasi manual.
Spring Data JPA: Query Methods & JPQL
Query custom cukup lewat penamaan method (query derivation), atau JPQL lewat @Query untuk kasus kompleks.
Spring Data JPA: Relationship
Relasi antar Entity lewat @OneToMany dan @ManyToOne, mirip Doctrine/TypeORM.
Validasi: @Valid & Bean Validation
Validasi otomatis DTO lewat annotation Bean Validation (@NotBlank, @Size, dst) dan @Valid di parameter Controller.
Exception Handling: @ControllerAdvice
Menangani error secara terpusat di seluruh aplikasi lewat class ber-annotation @ControllerAdvice.
CRUD REST API Lengkap
Menggabungkan Controller, Service, Repository, dan validasi jadi endpoint CRUD lengkap.
application.properties/yml: Configuration
Mengelola konfigurasi aplikasi lewat application.properties (atau application.yml), dibaca lewat @Value.
Filter & Interceptor Dasar
Kode yang dijalankan sebelum request sampai ke Controller lewat Filter (level servlet) atau Interceptor (level Spring MVC).
CORS
Mengizinkan request dari domain/origin berbeda lewat @CrossOrigin atau konfigurasi global WebMvcConfigurer.
Swagger/OpenAPI dengan springdoc
Dokumentasi API interaktif otomatis lewat library springdoc-openapi.
Tugas Akhir
Latihan akhir menggabungkan Controller, Service, Repository, dan validasi dalam satu REST API Catatan.