MENU

【2025年】REST API開発入門|設計から実装までの基本

api development basics 2025 optimized

「API開発、どう始めればいいの?」と悩んでいませんか?

現役WEBエンジニアとして、API開発を行っています。

この記事では、REST APIの基本を解説します。

目次

REST APIとは

基本概念

  • REST: Representational State Transfer
  • HTTPメソッドでリソースを操作
  • JSON形式でデータをやり取り

HTTPメソッド

メソッド 用途
GET 取得 ユーザー一覧
POST 作成 ユーザー登録
PUT 更新(全体) ユーザー情報更新
PATCH 更新(部分) メール変更
DELETE 削除 ユーザー削除

URL設計

良い設計

GET    /users          # ユーザー一覧
GET    /users/1        # ユーザー詳細
POST   /users          # ユーザー作成
PUT    /users/1        # ユーザー更新
DELETE /users/1        # ユーザー削除

# ネストしたリソース
GET    /users/1/posts  # ユーザーの投稿一覧

悪い設計

GET    /getUsers       # 動詞を使わない
POST   /createUser     # メソッドで表現
GET    /user/delete/1  # DELETEを使う

レスポンス設計

ステータスコード

コード 意味
200 成功
201 作成成功
400 リクエストエラー
401 認証エラー
403 権限エラー
404 見つからない
500 サーバーエラー

レスポンス例

// 成功
{
  "data": {
    "id": 1,
    "name": "田中",
    "email": "tanaka@example.com"
  }
}

// エラー
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "メールアドレスが不正です"
  }
}

Node.js(Express)での実装

セットアップ

npm init -y
npm install express

基本的なAPI

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

app.use(express.json());

// ユーザー一覧
app.get('/users', (req, res) => {
  res.json({ data: users });
});

// ユーザー詳細
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: 'Not found' });
  res.json({ data: user });
});

// ユーザー作成
app.post('/users', (req, res) => {
  const user = { id: Date.now(), ...req.body };
  users.push(user);
  res.status(201).json({ data: user });
});

app.listen(3000);

認証

認証方式

方式 特徴
APIキー シンプル、セキュリティ低
JWT ステートレス、人気
OAuth2 標準的、外部連携

JWTの例

const jwt = require('jsonwebtoken');

// トークン生成
const token = jwt.sign({ userId: 1 }, 'secret', { expiresIn: '1h' });

// 認証ミドルウェア
const auth = (req, res, next) => {
  const token = req.headers.authorization?.split(' ')[1];
  if (!token) return res.status(401).json({ error: 'Unauthorized' });

  try {
    const decoded = jwt.verify(token, 'secret');
    req.userId = decoded.userId;
    next();
  } catch {
    res.status(401).json({ error: 'Invalid token' });
  }
};

テスト

Postman

  • GUIでAPIテスト
  • リクエスト保存・共有
  • 環境変数管理

curlコマンド

# GET
curl http://localhost:3000/users

# POST
curl -X POST http://localhost:3000/users \
  -H "Content-Type: application/json" \
  -d '{"name": "田中"}'

まとめ

REST API開発のポイント:

  1. HTTPメソッドを正しく使う
  2. URL設計はリソースベース
  3. ステータスコードを適切に
  4. 認証を実装する

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次