😄

Next.js (pages router)のapi routeにて、apiコンテナと通信を行うメモ

2024/12/03に公開

Next.js (pages router)のapi routeにて、apiコンテナと通信を行うメモ

以下のようなディレクトリ構造の時。webはnginxコンテナでport 80が開いている。

.
  ├ web
  ├ app
  ├ docker-compose.yml
  ├ Dockerfile

コード

axiosのurlにdockerコンテナのサービス名を指定する。

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse<Data>
) {
  try {
    const response = await axios.get('http://web:80/api/message', {
      headers: {
        "Accept": "application/json"
      }
    })
    
    res.status(200).json({ message: response.data.message })

  } catch (e) {
    if(e instanceof Error) {
      res.status(200).json({ message: e.message })
    }
    throw e;
  }
}

参考

最後に

間違っていることがあればコードがおかしいとかあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion