AI Powered SaaS: Stripe + Auth + Billing + Deploy · Pelajaran

Paginasi, Penyaringan, dan Pengurutan API

Buat API SaaS Anda mampu berkembang dengan mengembalikan kumpulan data besar dalam beberapa halaman, memungkinkan klien menyaring dan mengurutkan hasil, serta menyediakan parameter kueri yang konsisten.

Pelajaran 4 dari 413 langkah

Paginasi, Penyaringan, dan Pengurutan API adalah pelajaran AI Powered SaaS: Stripe + Auth + Billing + Deploy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Powered SaaS: Stripe + Auth + Billing + Deploy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Powered SaaS: Stripe + Auth + Billing + Deploy mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

Why Not Return Everything?

An endpoint that returns 50,000 rows is slow, heavy, and crashes clients. Pagination returns data in manageable chunks, while filtering and sorting let clients ask for exactly what they need.

Offset Pagination

The simplest approach uses page and limit. You skip (page - 1) * limit rows and take limit rows.

GET /api/users?page=2&limit=20

Implementing Offset in Prisma

Prisma exposes skip and take for offset pagination.

const users = await prisma.user.findMany({
  skip: (page - 1) * limit,
  take: limit
});

Returning Metadata

Clients need to know how many pages exist. Return the data plus a total count and computed page info.

const total = await prisma.user.count();
return Response.json({
  data: users,
  page,
  totalPages: Math.ceil(total / limit)
});

The Offset Problem

Large offsets are slow because the database still scans skipped rows, and inserts can shift items between pages. For big or live datasets, prefer cursor pagination.

Cursor Pagination

A cursor points to the last item seen. The next request fetches rows after that cursor — fast and stable even as data changes.

const users = await prisma.user.findMany({
  take: limit,
  skip: 1,
  cursor: { id: lastId },
  orderBy: { id: 'asc' }
});

Filtering by Query Params

Read filter params from the URL and build a where clause. Use contains for search-style filters.

const q = searchParams.get('search');
const where = q ? { name: { contains: q, mode: 'insensitive' } } : {};

Combining Multiple Filters

Build the where object conditionally so only provided params apply. Prisma combines them with AND by default.

const where = {};
if (status) where.status = status;
if (minPrice) where.price = { gte: Number(minPrice) };

Sorting Safely

Accept a sort field and direction, but whitelist allowed fields so clients cannot order by arbitrary or sensitive columns.

const allowed = ['name', 'createdAt', 'price'];
const field = allowed.includes(sort) ? sort : 'createdAt';
const orderBy = { [field]: dir === 'desc' ? 'desc' : 'asc' };

Validating Query Params

Coerce and clamp inputs: cap limit so a client cannot request a million rows, and default page to 1.

const limit = Math.min(Number(searchParams.get('limit')) || 20, 100);
const page = Math.max(Number(searchParams.get('page')) || 1, 1);

Best Practices

Design scalable list endpoints:

  • Always paginate large collections
  • Use cursor pagination for big or live data
  • Return metadata (total, pages)
  • Whitelist sort fields and clamp limits

Quick Check

Test your pagination knowledge.

Recap

You learned to build scalable list APIs:

  • Paginate with skip/take or cursors
  • Return total and page metadata
  • Build dynamic where clauses for filtering
  • Whitelist sort fields and clamp the limit

Your API now handles large datasets efficiently.

Gratis untuk memulai

Belajar AI Powered SaaS: Stripe + Auth + Billing + Deploy dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Paginasi, Penyaringan, dan Pengurutan API” gratis?

Ya — teks lengkap “Paginasi, Penyaringan, dan Pengurutan API” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Powered SaaS: Stripe + Auth + Billing + Deploy, upgrade ke CoddyKit PRO. Kursus AI Powered SaaS: Stripe + Auth + Billing + Deploy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Paginasi, Penyaringan, dan Pengurutan API”?

Buat API SaaS Anda mampu berkembang dengan mengembalikan kumpulan data besar dalam beberapa halaman, memungkinkan klien menyaring dan mengurutkan hasil, serta menyediakan parameter kueri yang konsist… Kamu berlatih AI Powered SaaS: Stripe + Auth + Billing + Deploy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Powered SaaS: Stripe + Auth + Billing + Deploy?

Tidak diperlukan pengalaman sebelumnya. AI Powered SaaS: Stripe + Auth + Billing + Deploy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Paginasi, Penyaringan, dan Pengurutan API” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Powered SaaS: Stripe + Auth + Billing + Deploy ini?

Ya. Setiap pelajaran AI Powered SaaS: Stripe + Auth + Billing + Deploy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Prinsip Desain API RESTful
  2. Skema Basis Data & ORM
  3. Titik Akhir API Pertama
  4. Paginasi, Penyaringan, dan Pengurutan API
← Kembali ke AI Powered SaaS: Stripe + Auth + Billing + Deploy