Next.js+Tailwind CSS+Storybookでフロントエンド開発③

はじめに

前回まで

各コンポーネントの用意まで完了しました。
今回はAPIを呼び出す準備をしていこうと思います。

  1. 環境構築
  2. Storybookで管理しながらコンポーネントを作成
  3. APIの呼び出し
  4. コンポーネントを組み合わせてレイアウト構築

今回使うAPIについて

Random Number API というAPIを使いたいと思います。
最小値/最大値/取得数を指定すると、ランダムな数字を返してくれます。
なんてピッタリなAPI!

APIを呼び出せるようにする

APIルートとは

Next.jsではAPIエンドポイントを作成できるディレクトリがあります
この場所をAPIルートと呼びます。

今回、localhost:3000/lotteryからAPIを呼びたいのすが、別ドメインであるrandomnumberapi.comに直接リクエストを送ると、CORS制限のためエラーが発生してしまいます。
なんてこった!

そこでAPIルートの出番です。

  1. APIルートからAPIを呼び出す
  2. APIルートがプロキシとして働く(=サーバーの代理でリクエストを受ける)
  3. CORS制約を回避することができる

APIルートを仲介することで、直接的なリクエストを回避できるわけです。
APIルートの作成方法はいくつかあり、今回はAppRouterを使っている場合の方法を使います。

APIルートを用意する

/api/numberで呼び出せるAPIルートを作成していきます。
numberがAPI名です。

場所の作成

  1. /src/app/api/numberまでディレクトリを作成する
  2. その中にroute.tsを作成する

中身の作成

route.tsに下記を記載します。

パラメータとしてmimmaxcountを指定できるようにしました。
最小値/最大値/取得数です。
指定が無い場合は0~100の数字を1つ返します。

確認してみる

Next.jsアプリを起動して、ブラウザからhttp://localhost:3000/api/numberにアクセスしてみます。

↑数字が出ました!

パラメータも付けてみます。

↑90~100の間で3つの数字が返ってきました。
APIの呼び出し用意完了!

おわりに

APIの呼び出し用意は以上です。
次回はコンポーネントを組み合わせて、レイアウト構築していきます。