Latihan 1 dari materi Pagination di API — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi GET /products di starter. Array allProducts (20 produk), serta page dan limit yang dibaca dari req.query (bawaannya 1 dan 5), sudah ada dan tetap dipakai.
- Hitung posisi awal:
const start = (page - 1) * limit;
- Potong datanya:
const data = allProducts.slice(start, start + limit);
- Hitung
total (jumlah produk, yaitu 20) dan totalPages = Math.ceil(total / limit) (4 untuk limit 5).
- Jawab
res.json({ data, meta: { page, limit, total, totalPages } }).
Jadi GET /products menjawab produk 1 sampai 5 dengan "meta": {"page": 1, "limit": 5, "total": 20, "totalPages": 4}, dan GET /products?page=2 menjawab produk 6 sampai 10.
Tester-nya mengirim tiga request dan mengecek isi jawabannya, bukan cuma statusnya: GET /products harus berisi produk 1 sampai 5 dengan meta {"page": 1, "limit": 5, "total": 20, "totalPages": 4}, GET /products?page=2 produk 6 sampai 10 dengan "page": 2, dan GET /products?page=4&limit=6 produk 19 dan 20 dengan "limit": 6 dan "totalPages": 4, karena 20 dibagi 6 dibulatkan ke atas.