Skip to content

Latest commit

 

History

History
58 lines (44 loc) · 2.03 KB

API_README.md

File metadata and controls

58 lines (44 loc) · 2.03 KB

Server Side Api Requests

  • Aynı paremetrelerle yapılan tüm istekler aksini belirtilmedikçe önbelleğe alınıyor.
  • Kullanıcı token'ının kullanıldığı isteklerde, token değiştikçe güncel sonuçlar gelmeye devam ediyor. Token değişmedikçe veriyi önbellekten alıyor.

Önbellekten gelmeyi belirli bir süreyle sınırlamak ya da kapatmak için revalidate kullanılmalı.

// revalidate kullanabilmek için sayfanın başına use server yazılmamış olması gerekiyor.
// use client yazılmadığı sürece next.js server component olarak davrandığı için bu bir sorun teşkil etmiyor.
// sayfayı server side olarak kullanmaya devam edebiliyoruz.

// Eğer 0 verilirse önbelleğe almadan her zaman güncel veriyi getirir.
export const revalidate = 0;

// Matematiksel işlemler yazılmamalı:
// export const revalidate = 60 * 60;

Her dakika önbelleği sıfırlayan bir örnek:

import { getProjectServiceClient } from "src/lib";
export const revalidate = 60;

export default async function Page() {
  const client = await getProjectServiceClient();
  const projects = await client.project.getApiProjectServiceProjects();
  return <>{projects.items[0].definition}</>;
}

Önbellekten gelmeyi tamamen engellemek için next.js'in unstable_noStore'u da kullanılabilir.

"use server";
import { unstable_noStore as noStore } from "next/cache";

export default async function Page() {
    noStore();
    ...
}

Güncel veriyi önbelleğe almadan getiren bir örnek:

"use server";
import { getProjectServiceClient } from "src/lib";
import { unstable_noStore as noStore } from "next/cache";

export default async function Page() {
  noStore();
  const client = await getProjectServiceClient();
  const projects = await client.project.getApiProjectServiceProjects();
  return <>{projects.items[0].definition}</>;
}