UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Next.js】API Routes を使ってAPIサーバーを構築する

API Routes は、Next.jsを使用してAPIを構築することができる機能

nextjs.org

わざわざ別途サーバー用意しなくてもpages/apiにファイルをおくとそれがAPIのエンドポイントURLになるから便利

pages/
 ├ blog/
 │  └index.tsx  ← http://localhost/blog のページ URL
 └ api/
    └ users.tsx  ← http://localhost/api/users APIエンドポイントURL

実装も馴染みがある感じで

export default function handler(req, res) {
  res.statusCode = 200
  res.setHeader('Content-Type', 'application/json')
  res.end(JSON.stringify({ name: 'John Doe' }))
}

reqres を受け取り、APIとして返却したい内容を res に追加する関数を作り、export するだけ

ただ、HTTPメソッドに応じた処理の振り分けはif文かswitch文で処理しないといけない

export default function handler(req, res) {
  if (req.method === 'POST') {
    // Process a POST request
  } else {
    // Handle any other HTTP method
  }
}