Bygge et REST API med TypeScript og Express
TypeScript og Express er en kraftig kombinasjon for å bygge robuste REST APIer. TypeScript gir typesikkerhet, bedre verktøy og forbedret utviklingsopplevelse, mens Express er et minimalistisk nettrammeverk for Node.js. Denne veiledningen vil gå gjennom trinnene for å bygge en REST API ved hjelp av TypeScript og Express.
Sette opp prosjektet
Start med å opprette en ny katalog for prosjektet og initialisere en Node.js-applikasjon.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Installer deretter de nødvendige avhengighetene for Express og TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Opprett en tsconfig.json
-fil for å konfigurere TypeScript. Kjør følgende kommando:
npx tsc --init
Endre tsconfig.json
filen for å passe prosjektets behov, aktiver alternativer som "strict"
, "esModuleInterop"
, og sett utdatakatalogen til "dist"
.
Opprette Express Server
Opprett en ny mappe kalt src
og inni den, lag en fil som heter index.ts
. Denne filen vil tjene som inngangspunkt 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 å kjøre serveren, bruk følgende kommando:
npx ts-node src/index.ts
Definere API-ruter
Opprett en ny mappe inne i src
kalt routes
. I denne mappen oppretter du en fil med navnet userRoutes.ts
for å definere ruter for håndtering av brukerrelaterte forespørsler.
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
importerer du userRoutes
og bruker dem i applikasjonen.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Opprette en kontroller og servicelag
Organiser koden ved å lage separate lag for kontrollere og tjenester. Opprett to nye mapper inne i src
: kontrollere
og tjenester
.
I mappen controllers
oppretter du 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
oppretter du 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;
};
Oppdater userRoutes.ts
for å bruke disse kontrollerene:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Tester REST API
For å teste REST API, bruk et verktøy som Postman eller curl for å sende forespørsler til endepunktene. Start serveren og foreta en GET-forespørsel til /api/users
og en POST-forespørsel til /api/users
med en JSON-nyttelast.
Konklusjon
Ved å følge disse trinnene kan en REST API opprettes ved hjelp av TypeScript og Express. TypeScript legger til typesikkerhet og en bedre utviklingsopplevelse, mens Express gir et enkelt og kraftig rammeverk for å bygge RESTful-tjenester. Dette oppsettet kan forbedres ytterligere ved å legge til validering, feilhåndtering og mer kompleks forretningslogikk.