Opbygning af en REST API med TypeScript og Express
TypeScript og Express er en kraftfuld kombination til at bygge robuste REST API'er. TypeScript giver typesikkerhed, bedre værktøj og forbedret udviklingsoplevelse, mens Express er en minimalistisk webramme for Node.js. Denne guide vil gennemgå trinene til at bygge en REST API ved hjælp af TypeScript og Express.
Opsætning af projektet
Start med at oprette en ny mappe til projektet og initialisere en Node.js-applikation.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Installer derefter de nødvendige afhængigheder til Express og TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Opret en tsconfig.json
fil for at konfigurere TypeScript. Kør følgende kommando:
npx tsc --init
Rediger tsconfig.json
-filen, så den passer til projektets behov, aktiver muligheder som "strict"
, "esModuleInterop"
, og indstil output-mappen til "dist"
.
Oprettelse af Express Server
Opret en ny mappe ved navn src
og inde i den, opret en fil med navnet index.ts
. Denne fil vil tjene som indgangspunkt for Express-serveren.
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}`);
});
For at køre serveren skal du bruge følgende kommando:
npx ts-node src/index.ts
Definition af API-ruter
Opret en ny mappe inde i src
ved navn routes
. I denne mappe skal du oprette en fil med navnet userRoutes.ts
for at definere ruter til håndtering af brugerrelaterede anmodninger.
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;
I filen index.ts
skal du importere userRoutes
og bruge dem i applikationen.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Oprettelse af en controller og servicelag
Organiser koden ved at oprette separate lag til controllere og tjenester. Opret to nye mapper inde i src
: controllere
og services
.
I mappen controllers
skal du oprette en fil med navnet 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);
};
I mappen services
skal du oprette en fil med navnet 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;
};
Opdater userRoutes.ts
for at bruge disse controllere:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Test af REST API
For at teste REST API skal du bruge et værktøj som Postman eller curl til at sende anmodninger til slutpunkterne. Start serveren og lav en GET-anmodning til /api/users
og en POST-anmodning til /api/users
med en JSON-nyttelast.
Konklusion
Ved at følge disse trin kan en REST API oprettes ved hjælp af TypeScript og Express. TypeScript tilføjer typesikkerhed og en bedre udviklingsoplevelse, mens Express giver en enkel og kraftfuld ramme til opbygning af RESTful-tjenester. Denne opsætning kan forbedres yderligere ved at tilføje validering, fejlhåndtering og mere kompleks forretningslogik.