Een REST API bouwen met TypeScript en Express
TypeScript en Express zijn een krachtige combinatie voor het bouwen van robuuste REST API's. TypeScript biedt type safety, betere tooling en een verbeterde ontwikkelervaring, terwijl Express een minimalistisch webframework is voor Node.js. Deze gids leidt u door de stappen om een REST API te bouwen met TypeScript en Express.
Het project opzetten
Begin met het maken van een nieuwe map voor het project en initialiseer een Node.js-toepassing.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Installeer vervolgens de vereiste afhankelijkheden voor Express en TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Maak een tsconfig.json
bestand om TypeScript te configureren. Voer de volgende opdracht uit:
npx tsc --init
Pas het bestand tsconfig.json
aan de behoeften van het project aan, door opties zoals "strict"
en "esModuleInterop"
in te schakelen en de uitvoermap in te stellen op "dist"
.
De Express-server maken
Maak een nieuwe map met de naam src
en maak daarin een bestand met de naam index.ts
. Dit bestand zal dienen als het toegangspunt voor de Express-server.
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}`);
});
Gebruik de volgende opdracht om de server uit te voeren:
npx ts-node src/index.ts
API-routes definiëren
Maak een nieuwe map binnen src
met de naam routes
. Maak in deze map een bestand met de naam userRoutes.ts
om routes te definiëren voor het verwerken van gebruikersgerelateerde verzoeken.
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;
Importeer de userRoutes
in het bestand index.ts
en gebruik ze in de toepassing.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Een controller en servicelaag maken
Organiseer de code door aparte lagen te maken voor controllers en services. Maak twee nieuwe mappen in src
: controllers
en services
.
Maak in de map controllers
een bestand met de naam 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);
};
Maak in de map services
een bestand met de naam 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;
};
Werk userRoutes.ts
bij om deze controllers te gebruiken:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
De REST API testen
Om de REST API te testen, gebruikt u een tool als Postman of curl om verzoeken naar de eindpunten te sturen. Start de server en doe een GET-verzoek naar /api/users
en een POST-verzoek naar /api/users
met een JSON-payload.
Conclusie
Door deze stappen te volgen, kan een REST API worden gemaakt met TypeScript en Express. TypeScript voegt type safety en een betere ontwikkelervaring toe, terwijl Express een eenvoudig en krachtig framework biedt voor het bouwen van RESTful services. Deze setup kan verder worden verbeterd door validatie, foutafhandeling en complexere bedrijfslogica toe te voegen.