5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

はじめに

近年、ウェブ開発において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の基礎を理解できたかと思います。次のステップでは、データベースの導入やセキュリティ強化など、実践的な機能追加に挑戦してみてください。

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

おわりに

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

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?