はじめに
近年、ウェブ開発において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の基礎を理解できたかと思います。次のステップでは、データベースの導入やセキュリティ強化など、実践的な機能追加に挑戦してみてください。
お問い合わせやご意見がありましたら、お気軽にご連絡ください。
おわりに
弊社では、フリーランスエンジニアの方を募集しております!
熱意を持って新しいプロジェクトに挑戦したい方、様々な大規模開発プロジェクトに興味のある方は、下記フォームにてあなたの経歴をご回答ください!
👉 フォームはこちら
たくさんのご応募、お待ちしております!