Proyek ini membangun REST API manajemen tugas dengan JDK murni — tanpa framework, tanpa pustaka luar. Kontrak API dirancang lebih dulu: resource, endpoint, status code, dan format JSON yang bolak balik antara klien dan server. Router manual di atas com.sun.net.httpserver.HttpServer melayani operasi CRUD; validasi payload mengumpulkan seluruh galat dalam satu respons; penyimpanan berkas membuat data bertahan lintas restart; dan token akses bertanda tangan HMAC mengamankan endpoint sebelum seluruhnya dibuktikan harness pengujian end-to-end.
Mengapa membangun API tanpa framework? Framework seperti Spring Boot menyelesaikan routing, validasi, dan keamanan lewat anotasi — nyaman setelah konsepnya dipahami, tetapi menyamarkan cara kerjanya saat pertama kali belajar. Dengan routing manual, kita menulis sendiri pembacaan method dan path, penerjemahan exception menjadi status code, dan pembacaan body JSON: persis pekerjaan yang framework lakukan di balik layar. Lapisan-lapisan itu dibangun sebagai class kecil yang bisa diuji terpisah — TugasRepository sebagai kontrak penyimpanan, RouterTugas sebagai router, FilterAuth sebagai gerbang autentikasi — dan konsepnya tetap berlaku utuh ketika kelak berpindah ke Spring Boot.
Sebelum mulai, kuasai materi berikut karena proyek ini memakainya tanpa mengulang teorinya: HTTP Requests dan Responses serta HTTP Client API pada section Networking, Custom Exceptions pada section Exception Handling, HashMap pada section Collections Framework, dan Files Utility pada section File I/O dan NIO.
Cara mengikutinya: kerjakan empat bagian secara berurutan karena satu API yang sama berevolusi antar bagian. Setiap bagian memuat versi terkini lengkap seluruh berkas .java yang dibutuhkan — salin seluruh berkas satu bagian ke folder kosong, lalu jalankan java ServerApi.java atau java UjiApi.java; JDK mengompilasi berkas yang saling merujuk secara otomatis. Seluruh contoh memakai tanggal beku, id deterministik, dan charset eksplisit sehingga keluaran selalu sama di setiap eksekusi; contoh JDBC dan JUnit tampil sebagai rancangan karena lingkungan kursus tidak menyertakan driver maupun pustaka pengujian.
Rancang resource, endpoint, dan format pesan API tugas.
Buka → # Bagian 2: Implementasi EndpointImplementasikan handler CRUD di atas HttpServer bawaan JDK.
Buka → # Bagian 3: Database dan ValidasiSimpan tugas di SQLite lewat JDBC dan validasi payload.
Buka → # Bagian 4: Authentication dan TestingAmankan endpoint dengan token sederhana dan uji seluruh API.
Buka →