בניית REST API עם TypeScript ו-Express

TypeScript ו-Express הם שילוב רב עוצמה לבניית ממשקי API חזקים של REST. TypeScript מספק בטיחות סוג, כלי עבודה טובים יותר וחווית פיתוח משופרת, בעוד Express היא מסגרת אינטרנט מינימליסטית עבור Node.js. מדריך זה יעבור על השלבים לבניית API של REST באמצעות TypeScript ו-Express.

הגדרת הפרויקט

התחל ביצירת ספרייה חדשה עבור הפרויקט ואתחול יישום 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

צור קובץ tsconfig.json כדי להגדיר את TypeScript. הפעל את הפקודה הבאה:

npx tsc --init

שנה את הקובץ tsconfig.json כך שיתאים לצרכי הפרויקט, הפעלת אפשרויות כמו "strict", "esModuleInterop", והגדרת ספריית הפלט ל- "dist".

יצירת שרת האקספרס

צור תיקייה חדשה בשם src ובתוכה, צור קובץ בשם index.ts. קובץ זה ישמש כנקודת הכניסה לשרת האקספרס.

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: בקרים ו-services.

בתיקייה 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 כדי לשלוח בקשות לנקודות הקצה. הפעל את השרת ושלח בקשת GET ל-/api/users ובקשת POST ל-/api/users עם מטען JSON.

מַסְקָנָה

על ידי ביצוע שלבים אלה, ניתן ליצור REST API באמצעות TypeScript ו-Express. TypeScript מוסיף בטיחות סוג וחווית פיתוח טובה יותר, בעוד Express מספקת מסגרת פשוטה ועוצמתית לבניית שירותי RESTful. ניתן לשפר עוד יותר הגדרה זו על ידי הוספת אימות, טיפול בשגיאות והיגיון עסקי מורכב יותר.