Створення 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. Цю настройку можна додатково вдосконалити, додавши перевірку, обробку помилок і складнішу бізнес-логіку.