KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling · leksjon

Paginering, filtrering og sortering av API-er

Gjør SaaS-API-et skalerbart ved å returnere store datasett sidevis, la klienter filtrere og sortere resultater og eksponere konsistente spørringsparametere.

Leksjon 4 av 413 trinn

Paginering, filtrering og sortering av API-er er en gratis leksjon i KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling inneholder totalt 4 leksjoner.

Hvorfor ikke returnere alt?

Et endepunkt som returnerer 50 000 rader, er tregt og tungt og kan føre til at klienter krasjer. Sideinndeling returnerer data i håndterbare deler, mens filtrering og sortering lar klientene be om akkurat det de trenger.

Offset-sideinndeling

Den enkleste fremgangsmåten bruker page og limit. De første (page - 1) * limit radene hoppes over, og deretter hentes limit rader.

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

Implementere offset i Prisma

Prisma tilbyr skip og take for offset-sideinndeling.

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

Returnere metadata

Klientene må vite hvor mange sider som finnes. Returner dataene sammen med et totalt antall og beregnet sideinformasjon.

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

Problemet med offset

Store offset-verdier er trege fordi databasen fortsatt skanner radene som hoppes over, og innsettinger kan flytte elementer mellom sider. For store eller dynamiske datasett bør De foretrekke cursor-sideinndeling.

Cursor-sideinndeling

En cursor peker på det sist viste elementet. Den neste forespørselen henter rader etter denne cursoren – raskt og stabilt selv når dataene endres.

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

Filtrere med spørringsparametere

Les filterparametere fra URL-en og bygg en where-betingelse. Bruk contains for søkelignende filtre.

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

Kombinere flere filtre

Bygg where-objektet betinget, slik at bare parametere som er oppgitt, brukes. Prisma kombinerer dem som standard med AND.

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

Sikker sortering

Godta et sorteringsfelt og en retning, men hvitlist tillatte felt slik at klientene ikke kan sortere etter vilkårlige eller sensitive kolonner.

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

Validere spørringsparametere

Konverter og begrens inndata: sett en øvre grense for limit slik at en klient ikke kan be om én million rader, og bruk 1 som standardverdi for page.

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

Beste praksis

Utform skalerbare listeendepunkter:

  • Bruk alltid sideinndeling for store samlinger
  • Bruk cursor-sideinndeling for store eller dynamiske data
  • Returner metadata (totalt antall, sider)
  • Hvitlist sorteringsfelt og begrens grenseverdier

Kort kontroll

Test kunnskapene Deres om sideinndeling.

Oppsummering

De har lært å bygge skalerbare liste-API-er:

  • Bruk sideinndeling med skip/take eller cursors
  • Returner totalt antall og metadata om sider
  • Bygg dynamiske where-betingelser for filtrering
  • Hvitlist sorteringsfelt og begrens grenseverdien

API-et Deres håndterer nå store datasett effektivt.

Gratis å komme i gang

Lær deg KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Paginering, filtrering og sortering av API-er» gratis?

Ja – hele teksten i «Paginering, filtrering og sortering av API-er» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling-kurset, kan du oppgradere til CoddyKit PRO. Kurset i KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling inneholder totalt 4 leksjoner.

Hva lærer jeg i «Paginering, filtrering og sortering av API-er»?

Gjør SaaS-API-et skalerbart ved å returnere store datasett sidevis, la klienter filtrere og sortere resultater og eksponere konsistente spørringsparametere. Du øver på KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling?

Ingen tidligere erfaring er nødvendig. KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Paginering, filtrering og sortering av API-er»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling-leksjonen?

Ja. Alle KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Prinsipper for RESTful API-design
  2. Databaseskjema og ORM
  3. De første API-endepunktene
  4. Paginering, filtrering og sortering av API-er
← Tilbake til KI-drevet SaaS: Stripe + autentisering + fakturering + utrulling