Bygga ett REST API med TypeScript och Express
TypeScript och Express är en kraftfull kombination för att bygga robusta REST API:er. TypeScript ger typsäkerhet, bättre verktyg och förbättrad utvecklingsupplevelse, medan Express är ett minimalistiskt webbramverk för Node.js. Den här guiden går igenom stegen för att bygga ett REST API med TypeScript och Express.
Konfigurera projektet
Börja med att skapa en ny katalog för projektet och initiera en Node.js-applikation.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Installera sedan de nödvändiga beroenden för Express och TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Skapa en tsconfig.json
fil för att konfigurera TypeScript. Kör följande kommando:
npx tsc --init
Ändra filen tsconfig.json
så att den passar projektets behov, aktivera alternativ som "strict"
, "esModuleInterop"
och ställ in utdatakatalogen till "dist"
.
Skapa Express Server
Skapa en ny mapp med namnet src
och inuti den, skapa en fil med namnet index.ts
. Den här filen kommer att fungera som ingångspunkt för Express-servern.
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}`);
});
För att köra servern, använd följande kommando:
npx ts-node src/index.ts
Definiera API-rutter
Skapa en ny mapp inuti src
som heter routes
. Skapa en fil med namnet userRoutes.ts
i den här mappen för att definiera rutter för hantering av användarrelaterade förfrågningar.
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
importerar du userRoutes
och använder dem i programmet.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Skapa en Controller och Service Layer
Organisera koden genom att skapa separata lager för kontroller och tjänster. Skapa två nya mappar inuti src
: controllers
och services
.
Skapa en fil med namnet userController.ts
i mappen controllers
.
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
skapar du en fil med namnet 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;
};
Uppdatera userRoutes.ts
för att använda dessa kontroller:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Testar REST API
För att testa REST API, använd ett verktyg som Postman eller curl för att skicka förfrågningar till slutpunkterna. Starta servern och gör en GET-begäran till /api/users
och en POST-begäran till /api/users
med en JSON-nyttolast.
Slutsats
Genom att följa dessa steg kan ett REST API skapas med TypeScript och Express. TypeScript lägger till typsäkerhet och en bättre utvecklingsupplevelse, medan Express tillhandahåller ett enkelt och kraftfullt ramverk för att bygga RESTful-tjänster. Denna inställning kan förbättras ytterligare genom att lägga till validering, felhantering och mer komplex affärslogik.