Budowanie interfejsu API REST z użyciem TypeScript i Express
TypeScript i Express to potężne połączenie do tworzenia solidnych interfejsów API REST. TypeScript zapewnia bezpieczeństwo typów, lepsze narzędzia i ulepszone środowisko programistyczne, podczas gdy Express to minimalistyczny framework sieciowy dla Node.js. Ten przewodnik przeprowadzi Cię przez kroki tworzenia interfejsu API REST przy użyciu TypeScript i Express.
Konfigurowanie projektu
Zacznij od utworzenia nowego katalogu dla projektu i zainicjowania aplikacji Node.js.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Następnie zainstaluj wymagane zależności dla Express i TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Utwórz plik tsconfig.json
, aby skonfigurować TypeScript. Uruchom następujące polecenie:
npx tsc --init
Zmodyfikuj plik tsconfig.json
tak, aby odpowiadał potrzebom projektu, włączając opcje takie jak "strict"
, "esModuleInterop"
i ustawiając katalog wyjściowy na "dist"
.
Tworzenie serwera Express
Utwórz nowy folder o nazwie src
i w nim utwórz plik o nazwie index.ts
. Ten plik będzie służył jako punkt wejścia dla serwera 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}`);
});
Aby uruchomić serwer, użyj następującego polecenia:
npx ts-node src/index.ts
Definiowanie tras API
Utwórz nowy folder wewnątrz src
o nazwie routes
. W tym folderze utwórz plik o nazwie userRoutes.ts
, aby zdefiniować trasy do obsługi żądań związanych z użytkownikiem.
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;
W pliku index.ts
zaimportuj userRoutes
i użyj ich w aplikacji.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Tworzenie kontrolera i warstwy usług
Zorganizuj kod, tworząc oddzielne warstwy dla kontrolerów i usług. Utwórz dwa nowe foldery wewnątrz src
: controllers
i services
.
W folderze controllers
utwórz plik o nazwie 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);
};
W folderze services
utwórz plik o nazwie 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;
};
Zaktualizuj userRoutes.ts
, aby używać następujących kontrolerów:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Testowanie interfejsu API REST
Aby przetestować REST API, użyj narzędzia takiego jak Postman lub curl, aby wysłać żądania do punktów końcowych. Uruchom serwer i wyślij żądanie GET do /api/users
oraz żądanie POST do /api/users
z ładunkiem JSON.
Wniosek
Postępując zgodnie z tymi krokami, można utworzyć REST API przy użyciu TypeScript i Express. TypeScript dodaje bezpieczeństwo typu i lepsze środowisko programistyczne, podczas gdy Express zapewnia proste i wydajne ramy do tworzenia usług RESTful. Tę konfigurację można dodatkowo ulepszyć, dodając walidację, obsługę błędów i bardziej złożoną logikę biznesową.