🗃️

Next.jsのgetStaticPathsでAPI取得したデータを、getStaticPropsに渡す方法

2022/10/26に公開

まずは結論から

https://github.com/vercel/examples/tree/main/solutions/reuse-responses
vercelのexamplesリポジトリに実装例が公開されていました。
getStaticPathsで取得したデータをファイルにキャッシュし、getStaticPropsでキャッシュからデータ取得する方式でした。

なぜ渡したいか?

getStaticPathsで全てのデータを取得してPathを返し、更にgetStaticPropsでAPIを叩くと、無駄なAPI通信が発生してしまいます。
例えばレートリミットがあるAPIの場合、利用制限される可能性があるため無駄な通信は避けたいからです。

https://github.com/vercel/next.js/discussions/11272#discussioncomment-2257876
この件でissueが作られましたが、メンテナーの方が実装例を公開してくれました。

https://solutions-reuse-responses.vercel.app/
データを再利用したいモチベーションや、コードの解説はこちらに書かれています。

Discussion