Code Explainers
Code explainers tagged #pagination
go
type PostCursor struct { CreatedAt time.Time ID int64 }
Keyset pagination with cursors in Go
pagination
keyset-cursor
database
Intermediate
8 steps
ruby
require "net/http" require "json" require "uri" require "base64"
Paginating an HTTP API with a Ruby enumerator
pagination
http
enumerator
Intermediate
7 steps
typescript
import { useCallback, useEffect, useRef, useState } from "react"; interface Page<T> { items: T[];
A cursor-based infinite scroll hook in React
custom-hooks
pagination
intersection-observer
Intermediate
9 steps
php
<?php namespace App\Http\Controllers\Api;
Cursor pagination in a Laravel API
pagination
cursor
keyset
Intermediate
9 steps
javascript
class InfiniteScroll { constructor(sentinel, { loadMore, root = null, rootMargin = '200px' } = {}) { this.sentinel = sentinel; this.loadMore = loadMore;
Infinite scroll with IntersectionObserver
intersectionobserver
pagination
async
Intermediate
10 steps
python
from flask import Blueprint, request, url_for, jsonify, abort from flask.views import MethodView from .models import Article, db
Building a paginated JSON API with Flask MethodView
rest-api
pagination
class-based-views
Intermediate
10 steps
typescript
import { Controller, Get, Query,
Validating paginated queries in NestJS
pagination
validation
pipes
Intermediate
7 steps
java
@Repository public interface OrderRepository extends JpaRepository<Order, Long> { @Query("""
Keyset pagination with Spring Data JPA
pagination
cursor
jpa
Advanced
8 steps
go
package handlers import ( "net/http"
Query-string filtering in Gin with GORM
query-binding
validation
conditional-queries
Intermediate
8 steps
go
func ListArticles(db *gorm.DB) gin.HandlerFunc { return func(c *gin.Context) { page, err := strconv.Atoi(c.DefaultQuery("page", "1")) if err != nil || page < 1 {
Building a paginated list endpoint in Gin
pagination
query-parameters
input-validation
Intermediate
8 steps
python
from django.contrib.auth.mixins import LoginRequiredMixin from django.views.generic import ListView from .models import Invoice
Building a scoped, filtered ListView in Django
class-based views
queryset filtering
authentication
Intermediate
7 steps
java
public class KeysetPaginationRepository { private final DataSource dataSource;
How keyset pagination works in Java
pagination
sql
jdbc
Intermediate
8 steps
typescript
import { IsInt, IsOptional, Max, Min } from 'class-validator'; import { Type } from 'class-transformer'; export class PaginationQueryDto {
Type-safe pagination queries in NestJS
pagination
validation
dto
Intermediate
7 steps
go
package handlers import ( "net/http"
Validating query params with Gin binding tags
validation
struct-tags
pagination
Intermediate
8 steps
typescript
interface PaginationParams { totalItems: number; pageSize: number; currentPage: number;
Building safe pagination metadata in TypeScript
pagination
input-validation
pure-functions
Intermediate
7 steps
javascript
const express = require('express'); const router = express.Router(); const db = require('../db');
Building a paginated articles endpoint in Express
pagination
input-validation
async-await
Intermediate
8 steps
python
from datetime import date from enum import Enum from typing import Annotated
Reusable query params with Pydantic in FastAPI
query-parameters
validation
pagination
Intermediate
8 steps
javascript
import { useState, useCallback, useEffect } from 'react'; function usePaginatedProducts(pageSize = 20) { const [items, setItems] = useState([]);
Cursor-based infinite scroll with a React hook
custom-hooks
pagination
async-fetching
Intermediate
8 steps