Latihan 1 dari materi Query Database dari API di API — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua endpoint di kode awal. Di latihan ini db tersambung ke database SQLite sungguhan dengan tabel products berisi 3 produk: Keyboard (id 1), Monitor (id 2), dan Mouse (id 3), dengan kolom id, name, price, dan category. Tabel ini gak punya kolom rahasia, jadi SELECT * boleh di sini.
GET /products: baris const products = db.prepare("SELECT * FROM products").all(); sudah ada, biarkan. Di bawahnya, jawab dengan res.json({ data: products, total: products.length });.
GET /products/:id: ambil satu produk lewat placeholder, db.prepare("SELECT * FROM products WHERE id = ?").get(Number(req.params.id)). .get() memberi baris pertama yang cocok, atau undefined kalau gak ada. Kalau undefined, jawab res.status(404).json({ error: "Product not found" }); kalau ada, jawab res.json({ data: product }).
Tester-nya mengirim GET /products dan mengecek jawabannya 200 dengan ketiga produk di data dan total berisi 3. Lalu GET /products/2 harus dijawab 200 dengan Monitor di data, dan GET /products/99 dijawab 404. Terakhir, tester mengirim id berisi 1 OR 1=1. Dengan placeholder, database membacanya utuh sebagai id, gak ada produk yang cocok, jadi jawabannya 404. Kodemu juga dicek memuat res.json( (atau res.send(), jawaban yang dibungkus { data: ... }, dan total yang diambil dari products.length.