Dokumentasi Resmi
|tulis.org

Arsitektur Dokumentasi

Peta jalan panduan, SDK integration, dan API reference lengkap yang disiapkan secara terstruktur.

TULIS CMS/DEVELOPER HUB
/guides-pagination

Paginasi dengan Public API Tulis

Endpoint daftar di API publik Tulis mengembalikan objek meta di samping data. Gunakan untuk membuat navigasi sebelumnya/berikutnya melalui posting Anda.

Objek meta

Setiap respons daftar menyertakan objek meta dengan bidang berikut:

BidangTipeArti
PagenumberNomor halaman saat ini (berbasis 1).
PerPagenumberBerapa banyak item yang diminta per halaman.
TotalnumberTotal item di semua halaman.
TotalPagesnumberTotal jumlah halaman.
HasNextbooleantrue jika ada halaman setelah halaman saat ini.
HasPrevbooleantrue jika ada halaman sebelum halaman saat ini.

Contoh bentuk respons:

{
  "data": [ { "slug": "post-1" }, { "slug": "post-2" } ],
  "meta": {
    "Page": 1,
    "PerPage": 10,
    "Total": 42,
    "TotalPages": 5,
    "HasNext": true,
    "HasPrev": false
  }
}

Logika "Halaman berikutnya"

Untuk maju, periksa HasNext. Jika true, minta page yang ditambah satu:

curl "https://YOUR_HOST/v1/posts?page=2&per_page=10" \
  -H "Authorization: Bearer ***" \
  -H "X-Workspace-ID: <WORKSPACE_ID>"

Membangun kontrol sebelumnya / berikutnya

async function loadPosts(page = 1) {
  const res = await fetch(
    `https://YOUR_HOST/v1/posts?page=${page}&per_page=10`,
    {
      headers: {
        Authorization: "Bearer <API_KEY>",
        "X-Workspace-ID": "<WORKSPACE_ID>",
      },
    }
  );
  const body = await res.json();
  const { data, meta } = body;

  renderList(data);

  const controls = [];
  if (meta.HasPrev) {
    controls.push(`<button data-page="${meta.Page - 1}">Sebelumnya</button>`);
  }
  if (meta.HasNext) {
    controls.push(`<button data-page="${meta.Page + 1}">Berikutnya</button>`);
  }
  document.getElementById("pager").innerHTML = controls.join("");

  document.querySelectorAll("#pager button").forEach((btn) => {
    btn.addEventListener("click", () =>
      loadPosts(Number(btn.getAttribute("data-page")))
    );
  });
}

loadPosts(1);

Gunakan parameter kueri page dan per_page untuk navigasi; andalkan HasNext / HasPrev dari meta daripada menghitung jumlah halaman sendiri.

Lini Masa Peluncuran Fitur

Fase 1: Setup Awal & KonfigurasiSELESAI

Docker Compose, pengaturan file environment, dan panduan setup lokal telah lengkap dibuat.

Fase 2: Referensi RESTful APISELESAI

Dokumentasi route endpoint publik, otentikasi JWT, dan kontrol hak akses telah selesai disusun.

Fase 3: Integrasi Frontend & Fitur LanjutSEDANG BERJALAN

Mempersiapkan boilerplate untuk Next.js client, manajemen revisi konten, dan optimasi query.