【Nextjs】API Routes return 404 “This page could not be found”

NextjsでAPI Routesを追加した時に、
API Routes return 404 "This page could not be found"
というエラーが発生した。

どこかで404になるような設定をしているはず。ということで追っていった結果、next.config.jsで設定されていることに辿り着いた。

目次

API Routes で設定したルートが404になる

まずは現状。
src/pages/api/test.ts を追加し、/api/test を叩いて、JSONデータが返ってくることを期待したが、デフォルトの404ページが表示された。

import type { NextApiRequest, NextApiResponse } from 'next'

type ResponseData = {
    message: string
}

export default function handler(
    req: NextApiRequest,
    res: NextApiResponse<ResponseData>
) {
    res.status(200).json({ message: 'Hello from Next.js!' })
}

API Routesの公式はこちら。

next.config.js を変更して解決

next.config.js でpageExtensionsにpage.tsxしか定義されていないことが問題だった。

module.exports = {
  pageExtensions: ["page.tsx"]
}

今回は、tsファイルも対象にするため、下記のように変更することで対処した。

module.exports = {
  pageExtensions: ["page.tsx", "api.ts"]
}

apiファイルも src/pages/api/test.api.ts と変更し、API Routesの設定が完了した。

シェア!

この記事を書いた人

kenichiのアバター kenichi エンジニア・写真家 | Engineer and photographer

日本全国と海外を旅するノマドワーカー。5年間、技術営業として働いたのち独立。
フリーランスエンジニアとしてWebサイト制作やアプリケーション開発を行う。面白い人たちの面白いを世に届けるべく行動中。
2024年11月にポルトガルへ移住🇵🇹

目次