mcpField
E
express-rest-api

express-rest-api

github.com/pluginagentmarketplace開発2901 回インストール42 週間前に更新
リポジトリ

express-rest-api について

Express.js で REST API を構築する Node.js 開発者向けの学習・実装ガイドです。Web やモバイルアプリのバックエンド、マイクロサービス、API 中心のプロジェクトを対象に、ルーティングからセキュリティ、テスト、デプロイまで扱います。

主な機能

  1. 01Express アプリとルート構成の例
  2. 02ミドルウェアとエラー処理のパターン
  3. 03RESTful エンドポイント設計の指針
  4. 04セキュリティ、検証、レート制限の助言
  5. 05プロジェクト構成と本番チェックリスト

活用シーン

  1. 01Web またはモバイルアプリのバックエンド構築
  2. 02マイクロサービス API の開発
  3. 03API への認証と入力検証の追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pluginagentmarketplace/custom-plugin-nodejs --skill express-rest-api

インストール後、Claude Code で/express-rest-apiを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
config.yaml
references/
GUIDE.md
scripts/
helper.py

詳細

Express REST API スキル

Node.js の Web フレームワークで事実上の標準となっている Express.js で、堅牢でスケーラブルな REST API を構築する方法を習得しましょう。

クイックスタート

5 つのステップで基本的な Express API を構築します。

  1. Express のセットアップ - npm install express
  2. ルートの作成 - GET、POST、PUT、DELETE のエンドポイントを定義します
  3. ミドルウェアの追加 - JSON パーサー、CORS、セキュリティヘッダー
  4. エラー処理 - 一元化されたエラー処理
  5. テストとデプロイ - Postman/Insomnia を使用し、クラウドにデプロイします

基本概念

1. Express アプリケーションの構造
const express = require('express');
const app = express();

// Middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Routes
app.use('/api/users', userRoutes);
app.use('/api/products', productRoutes);

// Error handling
app.use(errorHandler);

app.listen(3000, () => console.log('Server running'));
2. RESTful なルート設計
// GET    /api/users       - Get all users
// GET    /api/users/:id   - Get user by ID
// POST   /api/users       - Create user
// PUT    /api/users/:id   - Update user
// DELETE /api/users/:id   - Delete user

const router = express.Router();

router.get('/', getAllUsers);
router.get('/:id', getUserById);
router.post('/', createUser);
router.put('/:id', updateUser);
router.delete('/:id', deleteUser);

module.exports = router;
3. ミドルウェアのパターン
// Authentication middleware
const authenticate = (req, res, next) => {
  const token = req.headers.authorization;
  if (!token) return res.status(401).json({ error: 'Unauthorized' });
  // Verify token...
  next();
};

// Validation middleware
const validate = (schema) => (req, res, next) => {
  const { error } = schema.validate(req.body);
  if (error) return res.status(400).json({ error: error.message });
  next();
};

// Usage
router.post('/users', authenticate, validate(userSchema), createUser);
4. エラー処理
// Custom error class
class APIError extends Error {
  constructor(message, statusCode) {
    super(message);
    this.statusCode = statusCode;
  }
}

// Global error handler
app.use((err, req, res, next) => {
  const statusCode = err.statusCode || 500;
  res.status(statusCode).json({
    success: false,
    error: err.message,
    ...(process.env.NODE_ENV === 'development' && { stack: err.stack })
  });
});

学習パス

初級(2~3 週間)
  • ✅ Express をセットアップし、基本的なルートを作成する
  • ✅ ミドルウェアの概念を理解する
  • ✅ CRUD 操作を実装する
  • ✅ Postman でテストする
中級(4~6 週間)
  • ✅ 認証(JWT)を実装する
  • ✅ 入力値のバリデーションを追加する
  • ✅ コードを整理する(MVC パターン)
  • ✅ データベースに接続する
上級(8~10 週間)
  • ✅ API のバージョン管理(/api/v1/、/api/v2/)
  • ✅ レート制限とセキュリティ
  • ✅ ページネーションとフィルタリング
  • ✅ API ドキュメント(Swagger)
  • ✅ パフォーマンスの最適化

必須パッケージ

{
  "dependencies": {
    "express": "^4.18.0",
    "helmet": "^7.0.0",          // Security headers
    "cors": "^2.8.5",            // Cross-origin requests
    "morgan": "^1.10.0",         // HTTP logger
    "express-validator": "^7.0.0", // Input validation
    "express-rate-limit": "^6.0.0" // Rate limiting
  }
}

一般的なパターン

レスポンス形式
// Success
{ success: true, data: {...} }

// Error
{ success: false, error: "Message" }

// Pagination
{
  success: true,
  data: [...],
  pagination: { page: 1, limit: 10, total: 100 }
}
HTTP ステータスコード
  • 200 OK - GET/PUT の成功
  • 201 Created - POST の成功
  • 204 No Content - DELETE の成功
  • 400 Bad Request - バリデーションエラー
  • 401 Unauthorized - 認証が必要です
  • 403 Forbidden - 権限がありません
  • 404 Not Found - リソースが見つかりません
  • 500 Internal Error - サーバーエラー

プロジェクト構成

src/
├── controllers/    # Route handlers
├── routes/        # Route definitions
├── middlewares/   # Custom middleware
├── models/        # Data models
├── services/      # Business logic
├── utils/         # Helpers
└── app.js         # Express setup

本番環境へのデプロイ前チェックリスト

  • ✅ 環境変数(.env)
  • ✅ セキュリティヘッダー(Helmet)
  • ✅ CORS の設定
  • ✅ レート制限
  • ✅ 入力値のバリデーション
  • ✅ エラー処理
  • ✅ ロギング(Morgan/Winston)
  • ✅ テスト(Jest/Supertest)
  • ✅ API ドキュメント

実例

ユーザー API の完全な例:

const express = require('express');
const router = express.Router();
const { body } = require('express-validator');

// GET /api/users
router.get('/', async (req, res, next) => {
  try {
    const { page = 1, limit = 10 } = req.query;
    const users = await User.find()
      .limit(limit)
      .skip((page - 1) * limit);

    res.json({ success: true, data: users });
  } catch (error) {
    next(error);
  }
});

// POST /api/users
router.post('/',
  body('email').isEmail(),
  body('password').isLength({ min: 8 }),
  async (req, res, next) => {
    try {
      const user = await User.create(req.body);
      res.status(201).json({ success: true, data: user });
    } catch (error) {
      next(error);
    }
  }
);

module.exports = router;

使用する場面

次のような場合に Express REST API を使用します。

  • Web/モバイルアプリのバックエンドを構築する
  • マイクロサービスを作成する
  • API ファーストのアプリケーションを開発する
  • 柔軟で軽量なフレームワークが必要
  • 豊富なエコシステムとコミュニティを活用したい

関連スキル

  • 非同期プログラミング(非同期処理を扱う)
  • データベース連携(MongoDB/PostgreSQL に接続する)
  • JWT 認証(API を保護する)
  • Jest テスト(エンドポイントをテストする)
  • Docker デプロイ(API をコンテナ化する)

リソース

コメント