Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengambil API Dalaman dan Melaksanakan Caching dalam getServerSideProps() Next.js?

Bagaimana untuk Mengambil API Dalaman dan Melaksanakan Caching dalam getServerSideProps() Next.js?

Barbara Streisand
Barbara Streisandasal
2024-11-15 19:20:03686semak imbas

How to Fetch Internal APIs and Implement Caching in Next.js's getServerSideProps()?

Mengambil API Dalaman dalam getServerSideProps: Amalan Terbaik dan Caching

Dalam Next.js, mengurus data antara halaman dan komponen dengan berkesan adalah penting. Walau bagaimanapun, amalan tertentu harus diikuti untuk memastikan amalan pengekodan yang baik dan pematuhan SEO. Artikel ini menangani isu melaksanakan pengambilan API dalaman dalam getServerSideProps().

Menggunakan fetch() dalam getServerSideProps()

Bertentangan dengan pemahaman sebelumnya, dokumentasi Next.js menasihatkan agar tidak menggunakan fetch( ) untuk memanggil laluan API dalaman dalam getServerSideProps(). Sebaliknya, ia mencadangkan untuk memindahkan logik daripada laluan API terus ke getServerSideProps(). Ini menghapuskan permintaan tambahan yang tidak perlu kerana kedua-dua laluan getServerSideProps() dan API dilaksanakan pada pelayan.

Kelebihan Mengekstrak Logik API

Memisahkan logik pengambilan daripada laluan API membenarkan penggunaan semulanya bukan sahaja dalam laluan API itu sendiri tetapi juga dalam getServerSideProps(). Pendekatan ini memudahkan pengurusan pangkalan kod dan meningkatkan fleksibiliti.

Pertimbangan Caching

Caching memainkan peranan penting dalam meningkatkan prestasi. Caching sebelah pelanggan menggunakan teknik seperti SWR adalah mudah. Walau bagaimanapun, mencapai caching pada pelayan memerlukan pendekatan yang berbeza. Satu teknik adalah untuk melaksanakan logik caching terus dalam getServerSideProps(), memanfaatkan mekanisme cache sebelah pelayan seperti Redis atau Memcached.

Contoh Refactor

Pertimbangkan contoh berikut:

// pages/api/user.js
export async function getData() {
  const response = await fetch(/* external API endpoint */);
  const jsonData = await response.json();
  return jsonData;
}

export default async function handler(req, res) {
  const jsonData = await getData();
  res.status(200).json(jsonData);
}

Dalam keadaan ini, fungsi getData(), yang merangkumi logik pengambilan, boleh digunakan dalam pengendali laluan API dan dalam getServerSideProps(). Ini membolehkan kod yang lebih bersih dan pemerolehan data yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil API Dalaman dan Melaksanakan Caching dalam getServerSideProps() Next.js?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn