Latihan 1: Pagination — API

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.

  1. Hitung posisi awal: const start = (page - 1) * limit;
  2. Potong datanya: const data = allProducts.slice(start, start + limit);
  3. Hitung total (jumlah produk, yaitu 20) dan totalPages = Math.ceil(total / limit) (4 untuk limit 5).
  4. 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.

Hint