🍏

Node.jsで構築するシンプルなREST API

2024/12/03に公開

はじめに

近年、ウェブ開発においてREST APIは欠かせない要素となっています。Node.jsは非同期I/Oを得意とするため、高性能なAPIサーバーを構築するのに適しています。本記事では、Node.jsとExpressを使用してシンプルなREST APIを構築する方法を解説します。

環境設定

  • Node.js:最新版(公式サイトからインストール)
  • テキストエディタ:Visual Studio Codeなど
  • APIテストツール:Postman、curl、またはブラウザの拡張機能

プロジェクトの初期化

まず、新しいプロジェクト用のディレクトリを作成し、npm initで初期化します。

mkdir simple-rest-api
cd simple-rest-api
npm init -y

Expressの導入と基本設定

ExpressはNode.js用の軽量なウェブフレームワークです。下記の流れで導入を進めます。

インストール

npm install express

基本的なサーバーの設定

index.jsというファイルを作成し、以下のコードを追加します。

const express = require('express');
const app = express();
const port = 3000;

// JSONデータを扱うためのミドルウェア
app.use(express.json());

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

RESTfulルートの作成

基本的なCRUD(Create, Read, Update, Delete)操作を行うためのルートを設定します。

データの管理(モックデータ)

実際のデータベースを使用せず、モックデータを配列で管理します。

let users = [
  { id: 1, name: '太郎' },
  { id: 2, name: '花子' },
];

CRUD操作の実装

1. データの取得(Read)

全ユーザーを取得

app.get('/users', (req, res) => {
  res.json(users);
});

特定のユーザーを取得

app.get('/users/:id', (req, res) => {
  const id = Number(req.params.id);
  const user = users.find(u => u.id === id);
  if (user) {
    res.json(user);
  } else {
    res.status(404).send('ユーザーが見つかりません');
  }
});

2. データの追加(Create)

app.post('/users', (req, res) => {
  const newUser = {
    id: users.length + 1,
    name: req.body.name,
  };
  users.push(newUser);
  res.status(201).json(newUser);
});

3. データの更新(Update)

app.put('/users/:id', (req, res) => {
  const id = Number(req.params.id);
  const user = users.find(u => u.id === id);
  if (user) {
    user.name = req.body.name || user.name;
    res.json(user);
  } else {
    res.status(404).send('ユーザーが見つかりません');
  }
});

4. データの削除(Delete)

app.delete('/users/:id', (req, res) => {
  const id = Number(req.params.id);
  users = users.filter(u => u.id !== id);
  res.status(204).send();
});

サーバーの起動とテスト

サーバーの起動

node index.js

ブラウザまたはAPIテストツールで以下のURLにアクセスして動作を確認します。

  • 全ユーザー取得GET http://localhost:3000/users
  • ユーザー取得GET http://localhost:3000/users/1
  • ユーザー追加POST http://localhost:3000/users(ボディに{"name": "新しいユーザー"}
  • ユーザー更新PUT http://localhost:3000/users/1(ボディに{"name": "更新されたユーザー"}
  • ユーザー削除DELETE http://localhost:3000/users/1

次のステップ

下記のようなアップデート案が考えられるかと思います。

  • データベースの導入:MySQLやMongoDBなどのデータベースを接続して、永続的なデータ管理を実現
  • エラーハンドリング:エラー時の応答を統一し、APIの信頼性を向上
  • 認証と認可:JWTなどを使用してセキュアなAPIに拡張
  • APIドキュメンテーション:Swaggerなどのツールを使って、自動的にAPIドキュメントを生成

まとめ

今回の記事では、Node.jsとExpressを使ってシンプルなREST APIを構築する方法を紹介しました。基本的なCRUD操作を実装することで、RESTful APIの基礎を理解できたかと思います。次のステップでは、データベースの導入やセキュリティ強化など、実践的な機能追加に挑戦してみてください。

お問い合わせやご意見がありましたら、お気軽にご連絡ください。

おわりに

弊社では、フリーランスエンジニアの方を募集しております!
熱意を持って新しいプロジェクトに挑戦したい方、様々な大規模開発プロジェクトに興味のある方は、下記フォームにてあなたの経歴をご回答ください!
👉 フォームはこちら
たくさんのご応募、お待ちしております!

Discussion