ホームページ > ウェブフロントエンド > jsチュートリアル > Next.js の getServerSideProps() で内部 API をフェッチし、キャッシュを実装する方法は?

Next.js の getServerSideProps() で内部 API をフェッチし、キャッシュを実装する方法は?

Barbara Streisand
リリース: 2024-11-15 19:20:03
オリジナル
767 人が閲覧しました

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

getServerSideProps での内部 API の取得: ベスト プラクティスとキャッシュ

Next.js では、ページとコンポーネント間のデータを効果的に管理することが重要です。ただし、適切なコーディング方法と SEO コンプライアンスを確保するには、特定の方法に従う必要があります。この記事では、getServerSideProps() 内で内部 API フェッチを実行する問題について説明します。

getServerSideProps() での fetch() の使用

これまでの理解に反して、Next.js ドキュメントでは fetch() を使用しないことを推奨しています。 ) getServerSideProps() 内で内部 API ルートを呼び出します。代わりに、API ルートから直接 getServerSideProps() にロジックを転送することを提案します。これにより、getServerSideProps() と API ルートの両方がサーバー上で実行されるため、不要な追加のリクエストが排除されます。

API ロジックを抽出する利点

フェッチ ロジックを API ルートから分離すると、API ルートの再利用が可能になるだけでなく、 API ルート自体内だけでなく、getServerSideProps() 内でも同様です。このアプローチにより、コードベースの管理が簡素化され、柔軟性が向上します。

キャッシュに関する考慮事項

キャッシュは、パフォーマンスの向上において重要な役割を果たします。 SWR などの技術を使用したクライアント側のキャッシュは簡単です。ただし、サーバー上でキャッシュを実現するには、別のアプローチが必要です。 1 つの手法は、Redis や Memcached などのサーバー側キャッシュ メカニズムを利用して、キャッシュ ロジックを getServerSideProps() 内に直接実装することです。

リファクタリングの例

次の例を考えてみましょう:

// 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);
}
ログイン後にコピー

この例では、フェッチロジックをカプセル化する getData() 関数を利用できます。 API ルート ハンドラー内と getServerSideProps() 内の両方で。これにより、よりクリーンなコードと効率的なデータ取得が可能になります。

以上がNext.js の getServerSideProps() で内部 API をフェッチし、キャッシュを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート