Tugas Akhir
Penjelasan
Saatnya menggabungkan semua konsep — routing, path/query extractor, JSON request/response dengan Serde, application state, dan error handling — menjadi satu REST API Catatan yang utuh memakai Actix-web. Tugas ini mensimulasikan pembuatan backend API nyata: menyimpan data catatan di shared state (in-memory dulu, cukup untuk latihan), menyediakan endpoint list, detail, create, dan delete, semuanya merespons dalam format JSON dengan status code HTTP yang sesuai.
Tugas
Bangun REST API Catatan dengan Actix-web: (1) Struct `Catatan` (Serialize) dengan field `id: u32`, `judul: String`, `isi: String`. (2) Shared state `web::Data<Mutex<Vec<Catatan>>>` untuk menyimpan semua catatan di memory. (3) Endpoint `GET /catatan` mengembalikan seluruh catatan sebagai JSON. (4) Endpoint `POST /catatan` menerima `web::Json<CatatanBaru>` (Deserialize, field judul & isi), menambahkan ke state dengan id baru, mengembalikan status 201 dengan data catatan yang dibuat. (5) Endpoint `GET /catatan/{id}` mengembalikan satu catatan atau status 404 kalau tidak ditemukan. (6) Daftarkan semua route di bawah scope "/api".
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Uji setiap endpoint bertahap dengan `curl` atau Postman: buat beberapa catatan lewat POST dulu, baru cek GET list dan GET detail. Kalau ingin lebih realistis, langkah lanjutan setelah ini adalah mengganti `Mutex<Vec<Catatan>>` dengan koneksi database sungguhan memakai `sqlx` seperti yang sudah dibahas sebelumnya.