TypeScript と Express を使用した REST API の構築
TypeScript と Express は、堅牢な REST API を構築するための強力な組み合わせです。TypeScript は型の安全性、より優れたツール、強化された開発エクスペリエンスを提供しますが、Express は Node.js 用の最小限の Web フレームワークです。このガイドでは、TypeScript と Express を使用して REST API を構築する手順について説明します。
プロジェクトの設定
まず、プロジェクト用の新しいディレクトリを作成し、Node.js アプリケーションを初期化します。
mkdir typescript-express-api
cd typescript-express-api
npm init -y
次に、Express と TypeScript に必要な依存関係をインストールします。
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
TypeScript を構成するには、tsconfig.json
ファイルを作成します。次のコマンドを実行します。
npx tsc --init
プロジェクトのニーズに合わせて tsconfig.json
ファイルを変更し、"strict"
、"esModuleInterop"
などのオプションを有効にし、出力ディレクトリを "dist"
に設定します。
Express サーバーの作成
src
という名前の新しいフォルダーを作成し、その中に index.ts
という名前のファイルを作成します。このファイルは、Express サーバーのエントリ ポイントとして機能します。
import express, { Request, Response } from 'express';
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
app.get('/', (req: Request, res: Response) => {
res.send('Hello, TypeScript and Express!');
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
サーバーを実行するには、次のコマンドを使用します。
npx ts-node src/index.ts
APIルートの定義
src
内に routes
という名前の新しいフォルダーを作成します。このフォルダーに、userRoutes.ts
という名前のファイルを作成し、ユーザー関連のリクエストを処理するためのルートを定義します。
import { Router, Request, Response } from 'express';
const router = Router();
router.get('/users', (req: Request, res: Response) => {
res.json({ message: 'Get all users' });
});
router.post('/users', (req: Request, res: Response) => {
const user = req.body;
res.json({ message: 'User created', user });
});
export default router;
index.ts
ファイルで、userRoutes
をインポートし、アプリケーションで使用します。
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
コントローラーとサービス層の作成
コントローラーとサービスに別々のレイヤーを作成してコードを整理します。 src
内に、controllers
と services
という 2 つの新しいフォルダーを作成します。
controllers
フォルダーに、userController.ts
という名前のファイルを作成します。
import { Request, Response } from 'express';
import { getAllUsers, createUser } from '../services/userService';
export const getUsers = (req: Request, res: Response) => {
const users = getAllUsers();
res.json(users);
};
export const addUser = (req: Request, res: Response) => {
const newUser = req.body;
const user = createUser(newUser);
res.json(user);
};
services
フォルダーに、userService.ts
という名前のファイルを作成します。
interface User {
id: number;
name: string;
}
let users: User[] = [];
export const getAllUsers = (): User[] => {
return users;
};
export const createUser = (user: User): User => {
users.push(user);
return user;
};
これらのコントローラーを使用するには、userRoutes.ts
を更新します。
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
REST APIのテスト
REST API をテストするには、Postman や curl などのツールを使用してエンドポイントにリクエストを送信します。サーバーを起動し、/api/users
に GET リクエストを送信し、JSON ペイロードを使用して /api/users
に POST リクエストを送信します。
結論
これらの手順に従うと、TypeScript と Express を使用して REST API を作成できます。TypeScript は型の安全性と開発エクスペリエンスを向上させ、Express は RESTful サービスを構築するためのシンプルで強力なフレームワークを提供します。このセットアップは、検証、エラー処理、およびより複雑なビジネス ロジックを追加することでさらに強化できます。