Створення REST API за допомогою TypeScript і Express
TypeScript і Express — це потужна комбінація для створення надійних REST API. TypeScript забезпечує безпеку типів, кращі інструменти та покращений досвід розробки, а Express — це мінімалістична веб-платформа для Node.js. У цьому посібнику описано, як створити REST API за допомогою 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"
.
Створення Express Server
Створіть нову папку з назвою 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
.
У папці 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. Цю настройку можна додатково вдосконалити, додавши перевірку, обробку помилок і складнішу бізнес-логіку.